pax*_*mus 5 linux bash shell sh
我有一些shell代码需要调试,因此我将代码转储了其环境到文件中
env > env.txt
Run Code Online (Sandbox Code Playgroud)
并使用我的测试脚本来获取它的源代码test.sh:
. ./env.txt
echo $EXAMPLE
echo $EXAMPLE2
Run Code Online (Sandbox Code Playgroud)
env.txt的内容是:
EXAMPLE=sh /hello/command.sh
EXAMPLE2=/just/some/path
Run Code Online (Sandbox Code Playgroud)
但是,env不会在其值两边加上引号,这往往会导致$ EXAMPLE出现问题,我收到此错误
test.sh:/hello/command.sh:未找到
很明显,它试图运行它而不是设置变量。
您发现此问题最快的解决方法是什么?
while read line; do
declare "$line"
# declare -x "$line"
# export "$line"
done < env.txt
Run Code Online (Sandbox Code Playgroud)
如果要将值导出到环境,请使用 选项-x或declare使用export命令。
在将输出重定向到文件之前,请添加双引号:
env | sed 's/=\(.*\)/="\1"/' > env.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |