Shell 脚本中空格的使用

学 Kali 渗透的时候 Shell 脚本差点把我搞疯了,不停报错。因刚刚接触 Linux 和 Shell,没有系统学过,所以很多报错都不知道怎么回事。

对着视频敲脚本,视频中空格有没有也不怎么看得出来,没想到是空格的问题。后来查才发现 Shell 对空格有特别严格的要求。

0x01. 空格规则

参考:shell脚本中空格的注意问题

1. =

赋值时:两边不能有空格
i=1
i=$((i+1))

比较时:两边必须有空格
if [ $a = $b ]

2. if

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

整数比较时:中括号前后必须有空格
if [ a -xx b ]

=——eq——equal
>——gt——greater than
<——lt——less than
!=——ne——not equal
>=——ge——greater equal
<=——le——less equal

参考:Linux#Shell#if [ $# -ne 1 ];then 是什么意思?

看来双括号还有问题…再学吧…

0x02. 变量规则

1. 变量名、等号、值之间不能有空格

  • 首个字符必须为字母(a-z,A-Z)
  • 中间不能有空格,可以使用下划线(_)
  • 不能使用标点符号
  • 不能使用 bash 里的关键字(可用 help 命令查看保留关键字)

2. 变量的引用是用 $ 符号加上变量名

echo ${a}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,建议给所有变量加上花括号,这是个好习惯,既便于阅读,又不易出错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,126评论 0 10
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,117评论 0 10
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,733评论 0 38
  • 一,shell题记 不懂shell的程序员不是好程序员,学习shell是为了自动化,使用自动化可以非常有效的提高工...
    架构师小秘圈阅读 12,770评论 3 70
  • 年轻时偷的懒都是在为以后所遭的秧埋下的伏笔呀。还好今天虚惊一场,本来以为会接受一个自己很难完成的任务,最后得知那个...
    最喜不过淡雅阅读 1,241评论 0 1