(11)centos7 shell

mac2022-07-05  21

一、变量

1.系统变量

echo $PATH #环境变量 echo $USER #当前用户 echo $HOME #

 

 

2.自定义变量

变量名称一般用大写等号两侧不能有空格静态变量不能被unset A=100 #定义变量, unset A #销毁变量 readonly B #定义静态变量, echo $A #使用变量$

指令赋值给变量

a1=$(ls -a) #使用$(),这个指令有的linux不兼容 a2=`ls -a` #或者使用 `` echo $a1 echo $a2

 

3.位置参数变量

 

#!/bin/bash echo "输入参数个数共:$# 个" echo "全部参数1是:$0 , 参数2是:$1" echo "输入参数为:$@" echo "输入参数为:$*"

 

4.预定义变量

$$ #获取当前进程号 $! # 后台运行的最后一个进程号 $? #返回最后一次命令的状态,0表示成功,

 

二、运算符

$()

echo $(((2+3)*4))

$[]    ** 两个()等于一个[]

echo $[(2+3)*4]

 

expr

用expr时符号两边必须要有空格

echo `expr 2 + 3`

 

 

乘号 

需要加\

echo `expr 2 \* 3`

 

比较运算符

数字的比较: -eq 相等(equal) -ne 不等(not equal) -gt 大于(greater than) -lt 小于(less than) -ge 大于等于 (greater than or equal) -le 小于等于 (less than or equal) 字符串的比较: [ $str1 = $str2 ] 等于 [ $str1 != $str2 ] 不等于 [ -z $str ] 空字符串返回true [ -n $str ] 或者 [ $str ] 非空字符串返回true

文件

-r file     用户可读为真 -w file     用户可写为真 -x file     用户可执行为真 -f file     文件为正规文件为真 -d file     文件为目录为真 -c file     文件为字符特殊文件为真 -b file     文件为块特殊文件为真 -s file     文件大小非0时为真 -t file     当文件描述符(默认为1)指定的设备为终端时为真

 

三、判断

 1 if

#!/bin/bash if [ $1 -gt 15 ] then echo "大于" elif [ $1 -lt 15 ] then echo "小于" else echo "等于" fi

 

 2 case

#!/bin/bash case $1 in "1") echo "周一" ;; "2") echo "周二" ;; *) echo "other" esac

 

 

 

 

四、循环

 

1. for循环

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

 

 

2.for循环

#!/bin/bash for (( i=0 ; i<$1 ; i++)) do echo "print $i" done

 

 

 

3.while 

 

#!/bin/bash while [ "$1" ] do echo "$1" done

 

五、函数

1.系统函数

(1)basename 获取文件全路径下的文件名

[root@VM_0_2_centos ~]# basename /root/test.txt test.txt

(2)dirname 获取文件全路径的路径部分

[root@VM_0_2_centos ~]# dirname /root/test.txt /root

 

2.自定义函数

 

#!/bin/bash getSum(){ SUM=$[$n1+$n2] echo "求和:$SUM" } read -p "输入参数1:" n1 read -p "输入参数2:" n2 getSum $n1 $n2

 

 

 

六、其他

1读取控制行

#!/bin/bash read -p "请输入:" NUM1 echo "输出: $NUM1"

 

转载于:https://www.cnblogs.com/buchizaodian/p/7082648.html

最新回复(0)