欢迎使用CSDN-markdown编辑器

来源:互联网 发布:淘宝照片木刻画 编辑:程序博客网 时间:2024/06/07 19:30

初学 linux shell 遇到的问题

linux shell中非常重要的东西是“空格”
一条命令行中,即使后面是符号(如 [ 、{ 、< 等)也要用空格隔开

#!/bin/bash
#
echo'Hello,bash!'
echo'Hello,bash!'
exit 0

编译器会报错
nh.sh: 行 3: echoHello,bash!: 未找到命令
nh.sh: 行 4: echoHello,bash!: 未找到命令

再如
`#!/bin/bash
#
read anwser
if[ answer=Y ]; then
echo “Y”

fi
错误为
(输入)Y
linux.sh: 行 4: 未预期的符号 then' 附近有语法错误
linux.sh: 行 4:
if[ answer=Y ]; then

出现以上问题的原因是linux shell其实相当于命令文本,与直接在终端上输入是一样的,如我们在终端上会这样写 echo “hello world”,而不会这样写 echo”ello world”,所以在命令语句后面都要添加空格将他们分开,
而上述代码中 linux shell 的命令语句后面都没有添加空格,第一段代码中 echo 与 ’ 之间缺少了空格,所以导致了错误,第二段代码中 if 与 [ 缺少了空格,因为上述代码没有其他语法错误,所以修改的方法就是在命令语句后面添加空格即可。
一般学了c/c++ 后,初学 linux shell 的人容易犯此类错误,而且不容易找出