在Bash中无法将文件内容导出为变量,求解决方案
解决方法
错误原因是$(cat /tmp/svc)会保留文件里的换行符,执行export时,换行后的内容会被当成独立的变量名参数,因此触发"bad variable name"错误。
要把文件内的路径转为空格分隔的字符串存入变量,可使用以下几种方法:
- 方法一:用
tr替换换行符为空格
export testvar=$(tr '\n' ' ' < /tmp/svc)
如果不想让结果末尾保留多余空格,可追加处理:
export testvar=$(tr '\n' ' ' < /tmp/svc | sed 's/ $//')
- 方法二:利用Bash变量替换功能
先读取文件内容到变量,再将换行符替换为空格后导出:
testvar=$(cat /tmp/svc) testvar=${testvar//$'\n'/ } export testvar
执行上述命令后,运行echo "$testvar"就能得到你需要的空格分隔路径字符串。
内容的提问来源于stack exchange,提问作者AhmFM
相关产品推荐
相关产品推荐

