zeu*_*unk 1 linux bash shell terminal
我正在尝试创建一个简单的shell脚本来列出第一个输入6次,一行,然后报告第二个输入的大小.这是我的脚本:
#!/bin/sh
# script1.sh
#
#
# $1=filename $2=number
i=0
while [$i -lt 7] #line 11
do
i=$(($i + 1))
echo $1
done
printf "\n"
if [$2 -gt 1000] #line 19
then
echo 'This is a big number!'
else
echo 'This is a small number.'
fi
Run Code Online (Sandbox Code Playgroud)
以下是我在尝试使用时收到的错误:
./script1.sh test 131234 ./script1.sh:line 11:[0:命令未找到
./script1.sh:line 19:[131234:命令未找到这是一个小数字.
我认为它部分有效,但有关命令-lt和-gt的信息导致错误.在Linux和终端(OS X)上运行会提供相同的错误.
你的[]条件需要空格:
if [ $2 -gt 1000 ] #line 19
^ ^
Run Code Online (Sandbox Code Playgroud)
和
while [ $i -lt 7 ] #line 11
^ ^
Run Code Online (Sandbox Code Playgroud)
代替
if [$2 -gt 1000] #line 19
Run Code Online (Sandbox Code Playgroud)
和
while [$i -lt 7] #line 11
Run Code Online (Sandbox Code Playgroud)
请注意,否则它不会考虑这些表达式.相反,它将它们理解为一个名为[$2或的字符串[$i.