【问题标题】:Change value of variable insead loop Bash [duplicate]更改变量 insead 循环 Bash 的值 [重复]
【发布时间】:2018-08-10 10:52:51
【问题描述】:

我是 bash 脚本的新手,我有一个全局变量,我想在脚本中的循环中更改他的值,但仍然得到一个找不到命令的错误

这是我的脚本:

SCRIPT_BASE = "/home/scripts/test-Scripts"
CURRENT_SCRIPT_PATH = ""


declare -a arr=("A" "B"  "C" "D")

for i in "${arr[@]}"
do
   if [ $i == "A" ]; then
       CURRENT_SCRIPT_PATH = $SCRIPT_BASE 
       echo -e "Current Path  :  $CURRENT_SCRIPT_PATH"
   fi
done

当我运行这个脚本时,我发现 CURRENT_SCRIPT_PATH commande not found 在此先感谢您的帮助

【问题讨论】:

  • a=ba = b 解析完全不同。变量赋值不能包含空格。
  • 谢谢大家,问题是空格

标签: linux bash shell


【解决方案1】:

bash 中,您应该非常小心if 条件中的空格,以及在为变量赋值时。

在您的代码中替换以下树行:

SCRIPT_BASE="/home/scripts/test-Scripts"
CURRENT_SCRIPT_PATH=""
CURRENT_SCRIPT_PATH=$SCRIPT_BASE

如果在变量名后面保留一个空格,bash 会将其解释为命令,并且由于您当前的 $PATH 中没有命令 SCRIPT_BASECURRENT_SCRIPT_PATHCURRENT_SCRIPT_PATH,因此您会遇到错误 command not found就是生产出来的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 2019-04-28
    相关资源
    最近更新 更多