$ values包含一個字符串,我從配置文件grep。這個字符串可以是eiter:?,!或者只是一個包含「foo bar」之類字詞的字符串。Bash Shell:for循環返回不同的值
values="?"
for value in ${values}
do
echo "value is ${value}"
done
如果我執行本地主機上的腳本,結果是:
value is ?
但是,如果我從遠程主機執行腳本(使用ssh和須藤蘇 - SomeUser的「/ tmp目錄/ foo.sh「),結果是:
value is 2
到目前爲止,我還沒有找到什麼不同。任何人都可以幫忙嗎?
我猜測這個變量是由於某種原因被擴展的。也許對方的默認外殼不是bash? 'echo $ 0'輸出是什麼? – RedX
參數是否被展開可以取決於目標目錄中是否存在匹配項。我有一個腳本x.sh迴應所有的論點。 ./x.sh?.sh echos'x.sh'while ./x.sh?.sl echos'?.sl',因爲沒有匹配。 – Mzzl
你的遠程機器上有沒有叫'2'的文件?請注意,如果您碰巧擁有一個具有該名稱的文件,則ls?'返回'2';或者 - 通常 - 它返回具有一個字符名稱的文件列表。 – fedorqui