几个符号的意义
$#:代表后接的参数『个数』,以上表为例这裡显示为『 4 』;
$@:代表『 "$1" "$2" "$3" "$4" 』之意,每个变数是独立的(用双引号括起来);
$*:代表『 "$1c$2c$3c$4" 』,其中 c 为分隔字元,预设为空白键, 所以本例中代表『 "$1 $2 $3 $4" 』之意。
shift
[root@www scripts]# vi sh08.sh
#!/bin/bash
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> '$@'"
shift # 进行第一次『一个变数的 shift 』
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> '$@'"
shift 3 # 进行第二次『三个变数的 shift 』
echo "Total parameter number is ==> $#"
echo "Your whole parameter is ==> '$@'"
结果
[root@www scripts]# sh sh08.sh one two three four five six #给予六个参数
Total parameter number is ==> 6 #最原始的参数情况
Your whole parameter is ==> 'one two three four five six'
Total parameter number is ==> 5 #第一次偏移,看底下发现第一个 one 不见了
Your whole parameter is ==> 'two three four five six'
Total parameter number is ==> 2 #第二次偏移掉三个,two three four 不见了
Your whole parameter is ==> 'five six'
if …. then
if [ 条件判断式一 ]; then
当条件判断式一成立时,可以进行的指令工作内容;
elif [ 条件判断式二 ]; then
当条件判断式二成立时,可以进行的指令工作内容;
else
当条件判断式一与二均不成立时,可以进行的指令工作内容;
fi
&& 代表 AND ;
|| 代表 or ;
所以,在使用中括号的判断式中, && 及 || 就与指令下达的状态不同了。
[ "$yn" == "Y" -o "$yn" == "y" ] 可替换为 [ "$yn" == "Y" ] || [ "$yn" == "y" ]
case … esac
case $变数名称 in
"第一个变数内容")
程式段
;;
"第二个变数内容")
程式段
;;
*)
不包含第一个变数内容与第二个变数内容的其他程式执行段
exit 1
;;
esac
function
function fname() {
程式段
}
循环
while [ condition ]
do
程式段落
done
until [ condition ]
do
程式段落
done
for var in con1 con2 con3 ...
do
程式段
done
for (( 初始值; 限制值; 执行步阶 ))
do
程式段
done
相关文章
- 11-10shell脚本基本使用教程
- 11-10Jtemplates 基本语法
- 11-10markdown基本语法
- 11-10shell-script的简单举例
- 11-10Shell脚本的基本知识点整理-3
- 11-10delphi 与 C++的基本语法区别
- 11-10python基本语法(2)
- 11-10MATLAB基本语法
- 11-10ES6基本语法
- 11-10HDFS基本shell操作