Linux-c——shell脚本

首先,shell编程语言属于解释型语言。什么是解释型语言呢?就是有一条命令,就解释并执行一条命令。
shell脚本的作用类似于Windows系统下的批处理文件,shell脚本就是在linux下实现批处理文件。

现在说一下如何新建一个批处理文件:

1) 新建文本文件aaaa.txt
2) 重命名为aaaa.bat
3)
echo "I am going to create dir aaaa"
mkdir aaaa
cd aaaa
echo "I am going to create file a.txt"
echo hello > a.txt
4) 保存
5) 双击运行,查看结果

shell 脚本实现过程:

  1. 新建文本文件 扩展名最好是.sh
  2. 写命令
  3. 加可执行权限 (chmod +x ex1.sh)
  4. 执行 (./ex1.sh)

当我们已经编写好一个shell脚本了,那我们该如何执行呢,有两个方法。
方法一:

	chmod +x ex1.sh
	./ex1.sh

方法二:

bash ex1.sh

shell脚本里面是可以定义变量的,可以使用环境变量,但是在运用变量的时候我们要注意三点。第一点:shell中变量尽量大写(默认规则);第二点:“=” 两边一定不要加空格;第三点:变量没有类型,全是字符串。
系统预设变量 $0, $1, $2, $3 …$9 $# $? $*
$# 参数个数
$* 表示所有的参数,以空格隔开
$? 保存了上一个命令的执行结果(用来判断下一个命令是否执行)
(0 表示执行成功, 非0 表示执行失败, 不同的数字表示不同的失败原因)
下面举一个例子:文件夹名 和 文件名通过参数传递

#编辑代码
echo "I am going to create dir $1"
mkdir $1
cd $1
echo "I am going to create file $2"
touch $2
#命令代码
./ex1.sh  bbbb  b.txt
./ex1.sh  cccc  c.txt

现在说一下shell脚本的算术运算命令 (+) (-) (*) (/) (%)
命令格式为:

`expr 3 + 5`     ==== 8
`expr 3 \* 2`    ==== 6
`expr 3 % 2`     ==== 1
`expr 3 / 2`     ==== 1

举个例子:输入两个数,求和

#编辑代码
read -p "please input num1:" NUM1
read -p "please input num2:" NUM2
NUM3=`expr $NUM1 + $NUM2`
echo "num3 is $NUM3"
#命令代码
./a.sh 5 6

现在说一下shell脚本的逻辑表达式
1.判断两个字符串是否相等

if [ $NAME = xiaoyi] #如果名字叫xiaoyi

2.判断一个整数是不是大于另一个整数
不可以用 > >= < <=
只能用
-eq 等于
-gt 大于 (greater than)
-lt 小于 (little than)
-ge 大于等于 (greater equal)
-le 小于等于 (little equal)

if [ $NUM1 -eq 100 ] #如果num1=100

举一个例子:输入一个数,判断此数是否 > 90

read -p "please input a num:" NUM1
if [ $NUM1 -gt 90 ]
then
	echo "> 90"
else
	echo "<= 90"
fi

3.判断文件存不存在

if [ -e $FILE ]		//-e 判断是否存在
			        //-d 判断是不是目录
			        //-x 是否有执行权限
			        //-w 是否有写权限

举一个例子:判断输入的是一个文件还是目录

read -p "please input dirname:" DIR
if [ -d $DIR ]
then
	echo "$DIR is directory"
else
	echo "$DIR is not directory"
fi

下面说一下shell语句的循环
首先,for循环。for循环的格式为:

for 变量名 in 单词表
do   
#这里写要循环的内容
done 

举个例子:用for循环实现创建a.1, a.2, a.3, a.4 … a.8

LIST="1 2 3 4 5 6 7 8"
for NAME in $LIST
do
	touch a.$NAME
done

其次,while循环。while的格式为:

while [ 条件 ]
do

done

举一个例子:创建一个文件夹tmpdir,然后用一个while循环,在tmpdir里分别创建tmp.1, tmp.2, tmp.3, tmp.4, tmp.5, tmp.6, tmp.7,tmp.8文件 。

i=1
mkdir tmpdir #创建文件夹
while [ $i -lt 9 ]
do
	touch tmpdir/tmp.$i #文件路径
	i=`expr $i + 1`
done
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值