在shell脚本中获取未绑定的变量错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在shell脚本中获取未绑定的变量错误相关的知识,希望对你有一定的参考价值。

我正在尝试在我的脚本中添加set -eu选项,但是它会抛出一个错误“Unbound variable error”

ssh -q $username@$server << EOF                            
set -eu    
echo "proceeding diagnostics"    
cd $CT_PATH    
bundle exec cap -q -S instance=$instance demo deploy:all;    
echo "completed process"
EOF

我需要在脚本上添加-eu选项,因为-u选项可以捕获不存在的变量。

感谢您对此的快速帮助

答案

我最近也碰到了这个。您需要在set -eu之前初始化所有变量

我的问题是:

...
set -eu

for filename in folder/*.txt; do
    ... stuff ...
done

这引发了unbound variable问题。但是,如果我将filename上面的set -eu定义为空字符串,则问题就会消失。

对于你的情况,似乎你需要在CT_PATH之前初始化instanceset -eu

以上是关于在shell脚本中获取未绑定的变量错误的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

Linux bash基础特性二

Python:使用参数(变量)执行shell脚本,但在shell脚本中未读取参数

shell脚本怎么设置语句出错自动退出?(set -eset -o errexit)使用未初始化的变量自动退出?(set -uset -o nounset)(退出脚本)shell set

通过shell脚本获取日期,并赋给变量

shell脚本怎么设置语句出错自动退出?(set -eset -o errexit)使用未初始化的变量自动退出?(set -uset -o nounset)(退出脚本)