shell编程基础

1.熟悉shell

1.1 基本语法

# ! /bin/bash

shell必须以上面所示的开头,以#开头的语句表示注释。

1.2 添加可运行权限

chmod u+x 文件名

1.3 创建简单的shell

# !/bin/bash

echo -n "hell .$USER,today is "

date

echo "good lucky!"

2.变量

2.1 用户定义的变量

规则:

变量名=变量值

在定义变量时不能加$,再引用变量内容时要加$,给变量赋值时等号两边不能有空格,若变量本身包含空格应该加引号。

2.2 位置参数

位置参数是一种再调用shell程序的行命令中按照各自所在的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格隔开,第一个位置参数替换$1变量,以此类推。$0是是特殊的变量,它的内容是shell程序名。

2.3 预定义变量

$#:位置参数的数量。

$*:所有位置参数的内容。

$?:命令执行后返回的状态。

$$:当前进程的进程号。

$!:后台运行的最后一个进程。

$0:当前执行的进程名称。

2.4 参数置换的变量

参数置换变量有4种,这些置换变量通常和某一个位置参数相联系,根据指定的位置参数是否已经设置决定变量的取值。

1)变量=${参数-word}

如果设置了参数,则用参数的之替换变量的值,否则用word置换。

2)变量=${参数=word}

如果设置了参数,则用参数的值替换变量的值,否则用word的值替换变量,再用word替换参数的值。

3)变量=${参数?word}

如果设置了参数,则用参数的值替换变量的值,否则就显示word的内容并从shell中退出,如果省略了word则显示标准信息。

4)变量=${参数+word}

如果设置了参数,则用参数的值替换变量的值,否则不进行置换。

3. 变量表达式

3.1 数值类型

eq:等于

ge:大于等于

le:小于等于

gt:大于

lt:小于

3.2 逻辑表达式

!: 取反

-o:或

-a:与

3.3 字符类型

=:等于

!=:不等于

-n:比较字符串是否大于0

-z:比较字符串是否小于0

4. 流程控制

4.1 条件判断

1)if - then

格式:

if 命令行1

then

命令行2

fi

例:

# !/bin/bash

echo -n "请输入一个数字 "
read NUM

if [ $NUM -ge 60 ]
then
echo "你通过了考试!"
fi
2)if-then-else

格式:

if 

命令行1

then

命令行2

else

命令行3

fi

例:

# !/bin/bash

echo -n "请输入一个数字 "
read NUM
if [ $NUM -ge 60 ]
then
echo "你通过了考试!"
else
echo "你没有通过考试!"
fi

3) case条件语句

格式:

case string in

exp-1)

  若干命令行1

exp-1)

  若干命令行2

.......

*)

其他命令行

esac

例:

# !/bin/bash

echo "关机 1"
echo "重启 2"
echo "时间 3"
echo -n "请选择 "
read STRING
case $STRING in
1) shoutdown -h ;;
2) reboot ;;
3) date ;;
*) echo "输入错误!" 
esac

4.2 循环控制

1)for循环

格式:

for 变量名 [in数值列表]

do

   若干命令行

done

例:

# !/bin/bash

for NUM
do
echo "$NUM"
done
2)while循环

while

    若干命令行1

do

   若干命令行2

done

只要“若干命令1”的最后一条为真则一直执行“若干命令行2”。

例:

# !/bin/bash

SUM=0
NUM=0

while [ $NUM -le 5 ] 
do
SUM=$[SUM+NUM]
NUM=$[NUM+1]
done

echo $SUM

3)until循环

until

    若干命令行1

do

   若干命令行2

done

与while的区别是条件为假时执行。

例:

# !/bin/bash

SUM=0
NUM=0

until [ $NUM -ge 5 ] 
do
SUM=$[SUM+NUM]
NUM=$[NUM+1]
done

echo $SUM




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值