shell基本语法

    shell基本语法

shell传参数:

$#: 传给脚本或函数的参数的个数
$0:是脚本本身的名字
$n: 脚本或函数的第n个参数
$@:是传给脚本或者函数的所有参数的列表
$*: 约等于$@,所有参数的列表
$$: 这个脚本的PID
$!: 执行上一个背景指令的PID
$?: 执行上一个指令的返回值

#!/bin/sh
echo "shell script name: $0"
echo "arg num: $#"
echo "args are: $@"
for arg in "$@"
do
    echo $arg
done
echo $*

1.for语句

#!/bin/sh

for file in $(ls /home/sfl/mytest/shell_test |grep sh)
do
    echo $file
done

for i in 0 1 2 3 4 5 6 7 8 9 #输出10次
do
    echo $i
done

for i in "0 1 2 3 4 5 6 7 8 9" #只循环1次,“”中的是一个变量
do
    echo $i
done

2.until语句

END_CONDITION=end

until [ "$var1" = "$END_CONDITION" ]
do
    echo "Input variable #1 "
    echo "($END_CONDITION to exit)"
    read var1
    echo "variable #1 = $var1"
    echo
done 

exit 0

3.if语句

#!/bin/bash

echo "Input a number #1 "
read num #从命令行中获取一个参数给num
echo "variable #1 = $num"
if [ $num -lt 60 ]
then
echo "you are not pass"
elif [ $num -lt 70 ] && [ $num -ge 60 ] #多个条件的判断
then
echo "pass"
elif [[ $num -lt 85 && $num -ge 70 ]] #如果放在一起,要注意是双方括号,不要写成[ $num -lt 85 && $num -ge 70 ]
then
echo "good"
elif (( $num <= 100 )) && (( $num >= 85 )) #对于有语言基础的人来说,这种写法让人觉得很舒服,不要忘了是双小括号
then
echo "very good"
else
echo "num is wrong"
fi #if要有结束标签的,根XML很像,不闭合,就报错
exit 0

4.case语句

#!/bin/sh

#useage:./shell_case.sh start/stop/restart

case $1 in
start)
    echo "start ok"
;; #注意一点,要注意是双分号
stop)
    echo "stop ok"
;;
restart)
    echo "restart ok"
;;
*)
    echo "no param"
;;
esac #注意闭合标签

exit 0

猜你喜欢

转载自www.cnblogs.com/hellokitty2/p/8988630.html
今日推荐