linux shell使用

1,变量的获取

普通变量:${var_name}

特殊变量:

$# 是传给脚本的参数个数

$0 是脚本本身的名字

$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
 

2,'',""和``的区别

单引号(''):单引号内是什么输出就是什么不管$还有其他

双引号(""):双引号会对双引号内的参数替换($)和命令替换(``)

反引号(``):是命令替换,命令替换是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。语法:`command`

例:变量 n=3

    echo '$n'      输出   $n

    echo "$n"     输出   3

      变量 USERS=`who | wc -l`       

  echo "Logged in user are $USERS"     输出   Logged in user are 1

 

3,运算符

4,shell中得比较
文件比较运算符
-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 如果 string长度为零,则为真 [ -z "$myvar" ]
-n string 如果 string长度非零,则为真 [ -n "$myvar" ]
string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
算术比较运算符
num1-eq num2 等于 [ 3 -eq $mynum ]
num1-ne num2 不等于 [ 3 -ne $mynum ]
num1-lt num2 小于 [ 3 -lt $mynum ]
num1-le num2 小于或等于 [ 3 -le $mynum ]
num1-gt num2 大于 [ 3 -gt $mynum ]
num1-ge num2 大于或等于 [ 3 -ge $mynum ]

5,shell动态变量名

avr_0=
avr_1=
avr_2=
avr_3=
avr_4=
avr_5=
avr_6=
avr_7=

# 赋值 avr_x = 
for i in $(seq 0 7)
do
eval avr_${i}=${i}
done

# 取值
for i in $(seq 0 7)
do
tmp=$(eval echo '$'avr_${i})
eval echo ${tmp}
done

6,返回这个脚本文件放置的目录

cd `dirname $0`

命令。这个命令的含义是 返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。

 7,sleep用法

s:表示秒          sleep 1s      休眠1秒
m:表示分钟     sleep  1m    休眠1分种
h:表示小时
d:表示天

posted @ 2020-05-20 20:31  bug开发工程师  阅读(171)  评论(0编辑  收藏  举报