工作中经常用到shell命令,记录下常用的备查:
1 系统变量$HOME $PWD(当前路径) $USER $SHELL
2 自定义变量
a=1 #注意=附近没有空格
echo $a
1
3 特殊变量$n,$#,$*,$@,$?
#!/bin/bash
#输入参数
echo $0 $1 $2 $3
#打印参数个数
echo $#
#打印所有参数,整体
echo $*
#打印所有参数,区分
echo $@
#上一条命令是否执行成功
echo $?
4 运算符
a=$[(1+2)*4]
#(没有空格)
echo $a
expr 1 \* 2
#(有空格)
5 条件判断
[ 2 -ge 1 ] #注意[]有空格2>=1 greater equal
echo $? #0代表执行成功,非0代表没有正常执行
6 流程控制
#if语句注意空格
if [ $1 -eq 1 ];then
echo "this is 1"
elif [ $1 -eq 2 ]
then
echo "this is 2"
fi
#case 语句
case $1 in
1)
echo "case 1"
;;
2)
echo "case 2"
;;
*)
echo "case other"
;;
esac
#for循环
s=0
for((i=1;i<=100;i++))
do
s=$[$s+$i]
done
echo $s #5050
#for循环2-打印所有输入参数
#所有参数放在一行
for i in "$*"
do
echo "input $i"
done
#一个参数一行
for j in $@
do
echo "input $j"
done
#while循环
i=0
s=0
while [ $i -le 100 ]
do
s=$[$s+$i]
i=$[$i+1]
done
echo $s #output 5050
7 read读取控制台输入
#!/bin/bash
#8秒内输入名字
read -t 8 -p "input your name " NAME
echo $NAME
8 函数
basename /home/1.txt
output: 1.txt
basename /home/1.txt .txt
output 1 #截取文件名称
dirname /home/1.txt
output /home #截取文件路径
#自定义函数
#!/bin/bash
function sum()
{
s=0
s=$[$1+$2]
echo $s
}
read -p "input param1:" p1
read -p "input param2:" p2
sum $p1 $p2
9 Shell tool
cut,sed,awk,sort