对于此UNIX Shell脚本,我必须使用有意义的示例输入来 说明目的和任何可能的输出。
str=””
for word in $*
do
if [$word == Tokyo]
then
str = “Capital Japan $str”
else
str = “$word $str”
fi
done
echo str;
答案 0 :(得分:2)
您的脚本存在以下问题:
[
后需要空格,因为它是命令。另外,您在]
=
周围的空格str
str="$word $str"
不清楚这些更正之后,脚本将变为:
# scipt.sh
for word in $*
do
if [ "$word" == "Tokyo" ]
then
str="Capital Japan $str"
echo "$str"
else
str="$word"
echo "$str"
fi
done
从外壳测试脚本:
$ bash script.sh some Tokyo word
some
Capital Japan Tokyo
word
答案 1 :(得分:1)
首先,您的代码有错误:
第一个错误:
:auth(*)
应为:
auth
在auth
之后和if [$word == Tokyo]
之前的空格,并在“ $ word”前后加引号,以防止单词分裂
然后下一个:
if [ "$word" == Tokyo ]
应为:
[
请注意,]
,等号和str = “Capital Japan $str”
之间没有空格。第8行存在相同的问题。
您还会注意到不同的引号吗?这些是您应该使用的双引号。在代码的第一行和第8行都是这种情况。
最后,要打印出变量str="Capital Japan $str"
,请输入:
str
尽管我建议使用引号。就像关注
"Capital Japan $str"
最后一个错误导致脚本打印str
而不是名为echo $str
的字符串