1 . $* 和$@ 区别
相同点:都表示传递给脚本的所有参数。
不同点:
不被" "包含时,$*和$@都以$1 $2… $n 的形式组成参数列表。
被" "包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式组成一个整串;
"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式组成一个参数列表。
2. Shell 运算符
Shell 和其他编程语音一样,支持包括:算术、关系、布尔、字符串等运算符。
原生 bash 不支持简单的数学运算,但是可以通过其他命令来实现,例如
expr。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加:
val=`expr 2 + 2`
echo $val
注意:
表达式和运算符之间一定要有空格,例如 2+2 是不对的,必须写成 2 + 2。
完整的表达式要被 ` ` 包含,注意不是单引号,在 Esc 键下边。
详细请参考附件资料《shell 运算符》。
此外,还可以通过(())、$[]进行算术运算。
count=1
((count++))
echo $count
a=$((1+2))
a=$[1+2]
3.for循环
方式一
for N in 1 2 3
do
echo $N
done
或
for N in 1 2 3; do echo $N; done
或
for N in {1..3}; do echo $N; done
方式二
for ((i = 0; i <= 5; i++))
do
echo "welcome $i times"
done
或
for ((i = 0; i <= 5; i++)); do echo "welcome $i times"; done
4. 函数使用
所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell 解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。
[ function ] funname [()]
{
action;
[return int;]
}
1、可以带 function fun()定义,也可以直接 fun() 定义,不带任何参数。
2、参数返回,可以显示加 return ,如果不加,将以最后一条命令运行结果,作为返回值。 return 后跟数值 n(0-255)。