在linux中编写shell脚本时有点新手。它是一个csh
脚本,但我在bash
shell中运行它,因为我使用#!/bin/bash
代替#!/bin/csh
。
1 #!/bin/bash
2 set i = 1
3 echo it starts
4
5 while ($i <= 5)
6 echo i is $i
7 @ i= $i +1
8 end
**注意:**数字只是为行编号。
上面的代码给出了输出错误:
it starts ./me.csh: line 9: syntax error: unexpected end of file
即使它回显it starts
并且错误中没有指定第9行,我也无法弄清楚出了什么问题。
答案 0 :(得分:2)
必须将shebang设置为应该解释脚本的shell。从哪个shell运行脚本无关紧要。唯一重要的是脚本编写的语言。
您的脚本是用csh
编写的,因此必须有shebang #!/bin/csh
。即使您想从bash运行它也是如此。此外,您错过了签名中的空格:
$ cat me.csh
#!/bin/csh
set i = 1
echo it starts
while ($i <= 5)
echo i is $i
@ i = $i + 1
end
输出:
$ ./me.csh
it starts
i is 1
i is 2
i is 3
i is 4
i is 5
答案 1 :(得分:0)
试试这个:
#!/bin/bash
echo it starts
i=1
while [ $i -le 5 ]; do
echo i is $i
i=$(( i+1 ))
done
示例输出:
it starts
i is 1
i is 2
i is 3
i is 4
i is 5
这是一个很好的参考: