对于这个 UNIX shell 脚本,我必须使用一个有意义的示例输入 解释目的和任何可能的输出。
str=””
for word in $*
do
if [$word == Tokyo]
then
str = “Capital Japan $str”
else
str = “$word $str”
fi
done
echo str;
最佳答案
好吧,首先你的代码有错误:
第一个错误:
if [$word == Tokyo]
应该是:
if [ "$word" == Tokyo ]
[
之后和 ]
之前留有空格,并在“$word”周围加上引号以防止分词
然后下一步:
str = “Capital Japan $str”
应该是:
str="Capital Japan $str"
请注意,str
、等号和“Capital Japan $str”
之间没有空格。第 8 行也存在同样的问题。
您还注意到不同的报价吗?这些是您应该使用的双引号。代码第一行和第 8 行就是这种情况。
最后,打印出您输入的变量 str
:
echo $str
尽管我确实建议使用引号。喜欢下面的内容
echo "$str"
最后一个错误导致您的脚本打印 str
而不是名为 str
的字符串
关于linux - 谁能解释一下这个 bash 脚本中发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55671483/