shell脚本命令

最后更新日期:2024-03-21

一、echo

  • 打印变量
#! /bin/bash

a=1					#所有变量均为字符串,a=1中间不能有空格
echo $a				#输出 1
echo ${a}			#输出 1
echo '$a'			#输出 $a
echo '${a}'			#输出 ${a}

二、特殊变量

1、$n

  • 获取输入参数
#! /bin/bash

echo $1,$2,$3		

#执行程序
./test.sh 1 2 3		 #输出 1,2,3

2、$#

  • 获取输入参数个数
#! /bin/bash

echo $#		

#执行程序
./test.sh 1 2 3		 #输出 3

3、$*

  • 获取整体的输入参数。参数是分离的,比如可以使用for循环读取
#! /bin/bash

echo $*		

#执行程序
./test.sh 1 2 3		 #输出 1 2 3

4、$@

  • 获取整体的输入参数
#! /bin/bash

echo $@		

#执行程序
./test.sh 1 2 3		 #输出 1 2 3

5、$?

  • 获取最后一次执行的命令的返回结果,0代表上一次命令执行正确,非0则不正确
#! /bin/bash

echo $?		

#执行程序
echo 1
./test.sh		 	#输出 0

三、运算符

1、expr

#! /bin/bash

expr 1 + 3			#中间必须有空格		

#执行程序
./test.sh		 	#输出 4

2、$[n+n]

  • 基本运算
#! /bin/bash

a=2
b=3
echo $[$a+$b]		

#执行程序
./test.sh		 	#输出 5

三、条件判断

1、[ condition ]

  • 条件成立返回0,失败返回非0
  • 括号中间必须有空格
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
0

2、&&

  • 与运算,两者成立返回0,否则返回非0
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ] && [ 20 -eq 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
1

3、||

  • 或运算,其中一个条件成立返回0,都不成立返回非0
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ] || [ 20 -eq 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
0

四、流程控制

1、if

  • 语法:
# if后面要有空格,中括号中间要有空格
# 写法1:
if [ condition ];then
	...
elif [ condition ];then
	...
fi

# 写法2:
# then换行写,中括号后面就不用分号
if [ condition ]
then
	...
elif [ condition ]
then
	...
fi
  • 例子:
#! /bin/bash

if [ $1 -eq 1 ]
then
        echo 1
elif [ $1 = 2 ]
then
        echo 2
fi

2、case

  • 语法:
case $变量名 in
"值1")
	...
;;
"值2")
	...
;;
*)
	...
;;
esac
  • 例子:
#! /bin/bash

case $1 in
"1")
        echo 1
;;

"2")
        echo 2
;;

*)
        echo 100
;;
esac

3、for

  • 语法:
# 写法1:
for(( 初始值;循环控制条件;变量变化 ))
do
	...
done

# 写法2:
for in 值1 值2 值3
do
	...
done
  • 例子:
# 例子1:

#! /bin/bash
s=0
for((i=1; i<=100; i++))
do
        s=$[ $s + $i ]
done:
echo $s

# 例子2:

#! /bin/bash
for i in $*
do
        echo $i
done

4、while

  • 语法:
while [ condition ]
do
	...
done
  • 例子
#! /bin/bash

i=1
s=0
while [ $i -le 100 ]
do
        s=$[ $s + $i ]
        i=$[ $i + 1 ]
done
echo $s

五、read读取控制台输入

  • read(选项)(参数)
  • 选项:
    • -p:输入提示符
    • -t :等待读取值的时间
  • 参数:
    • 变量:读取输入的值存放到变量
#! /bin/bash

read -t 7 -p "press any key to continue: " KEY
echo $KEY

六、函数

1、basename

  • 删掉所有的前缀包括最后一个‘/’字符,然后将字符串显示出来:
  • 实际案例一般用来获取文件名
# 例子
#! /bin/bash

basename /home/lzs/test.txt			# 输出 test.txt
basename /home/lzs/test.txt .txt	# 输出 test

2、dirname

  • 从绝对路径中去除文件名(非目录的部分),然后返回剩下的路径
  • 实际案例一般用来获取某个文件的路径
# 例子
#! /bin/bash

dirname /home/lzs/test.txt			# 输出 /home/lzs

七、自定义函数

#! /bin/bash

function boardconfig()
{
        s=0
        s=$[$1+$2]
        echo ${s}
}

read -p "first num : " p1
read -p "second num: " p2

boardconfig $p1 $p2

#输入 3 3
#输出 6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值