shell脚本入门

1.shell入门

代码写在普通文件中,以.sh结尾。

sudo vim first.sh

#!/bin/bash		##表示用哪一种shell解析器解析脚本
echo "hello world"

执行脚本

sh first.sh

2.shell基本语法

(1)系统变量

shell分为系统变量和用户自定义变量,通过set命令查看系统变量

(3)自定义变量

语法:变量=值,例:STR=aaa,等号两侧没有空格,否则报command not found错误。变量名通常用大写表示。

使用:$STR

注意:定义变量时,单引号和双引号有区别。但引号直接输出内容,双引号对内容进行解析。

(4)示例

在字符串总引用变量:

S1="hello world"
echo "S1=${S1}"

撤销变量:unset S1

定义静态变量:readonly S2=1,只读变量不能unset。

定义全局变量:export A。将变量改为当前shell进程中的全局环境变量,其他shell程序也可使用。

#t1.sh
sudo vim t1.sh
#!/bin/bash
export s1=s1
echo "s1-->"$s1
sh t2.sh
#t2.sh
sudo vim t2.sh
#!/bin/bash
echo "s2-->"$s1
#输出
s1-->s1
s2-->s1
1.t1.sh中直接调用t2.sh会让t2.sh在t1所在的bash进程的子进程空间执行,但子进程空间只能访问父进程中用export定义的变量
2.一个shell进程无法将自己定义的变量提升到父进程空间中去
3.“.”执行脚本时会让脚本在调用者所在进程空间中执行

(5)算术运算

s1=`expr 1 + 1`
s2=$((1+2))
s3=$[1+3]
echo $s1
echo $s2
echo $s3

3.流程控制语句

(1)if语句

#!/bin/bash
read -p "input name:" NAME
if [ $NAME = root ]
        then
                echo "hello ${NAME},welcome"
        elif [ $NAME = a ]
                then
                        echo "hi ${NAME}"
        else
                echo "sorry"
fi

(2)while循环

#!/bin/bash
i=1
sum=0
while ((i<=10));do
    let sum+=i
    let ++i
done
echo $sum

(3)for循环

#!/bin/bash
sum=0
for i in {1..10}
do
        ((sum+=i))
done
echo $sum

sum=0
for ((i=1; i <= 10; i++))
do
        ((sum+=i))
done
echo $sum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值