与C语言相比,shell变成需要注意如下事项:
1.
注意,赋值号=的周围不能有空格,这可能和你熟悉的大部分编程语言都不一样。
2.
变量名外面的花括号{ }是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界。推荐给所有变量加上花括号{ },这是个良好的编程习惯。
3.
单引号和双引号的区别
以单引号' '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这 种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。
以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符 串中附带有变量和命令并且想将其解析后再输出的变量定义。
我的建议:
如果变量的内容是数字,那么可以不加引号;
如果真的需要原样输出就加单引号;
其他没有特别要求的字符串等最好都加上双引号,定义变量时加双引号是最常见的使用场景。
4.
Shell 中有两种方式可以完成命令替换,一种是反引号` `,一种是$(),使用方法如下:
variable=`commands`
variable=$(commands)
其中,variable 是变量名,commands 是要执行的命令。commands 可以只有一个命令,也可以有多个命令,多个命令之间以分号 ; 分隔。
5.
shell计数:
#!/bin/bash
sum=0
for(( i=1;i<=100;i++ ))
do
sum=$[$sum+$i]
done
echo "SUM=$sum" //SUM=5050