我尝试在变量中构建一组参数并将其传递给脚本,但行为与我的预期不同.
test.sh
#!/bin/bash for var in "$@"; do echo "$var" done
输入
usr@host$ARGS="-a \"arg one\" -b \"arg two\"" usr@host$./test.sh $ARGS
产量
-a "arg one" -b "arg two"
预期
-a arg one -b arg two
请注意,如果将引用的参数直接传递给它运行的脚本.我也可以用eval解决这个问题,但我想了解为什么第一种方法失败了.
ARGS="./test.sh -a "arg one" -b "arg two"" eval $ARGS