shell 常用命令总结

#!/bin/bash

if[$1-gt90]

then

echo"Good,$1"

elif[$1-gt70]

then

  echo"OK,$1"

else

  echo"Bad,$1"

fi

exit 0

for day in Sun Mon Tue Wed Thu Fri Sat

do

echo$day

done

# 如果列表被包含在一对双引号中,则被认为是一个元素

case "$var" in

 condition1)

statments1;;

 condition2)

statments2;;

 ...

 *)

defaultstatments;;

esac

数字比较

-lt,小于

-le,小于等于

-eq,等于

-ge,大于等于

-gt,大于

-ne,不等于

整数运算一般通过 let 和 expr 这两个指令来实现

如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1`

字符串比较

=

    !=

      >

    <

if[$a="111"]中间必须加空格

-dfile:file存在并是一个目录

-z str str为空,长度为0

-n str  str非空

更细致的文档推荐在字符串比较时尽量不要使用 -n ,而用 ! -z 来代替。awk -F"," '{print $1}'

v_record=`echo $line|awk -F"," '{print $1}'`

v_time=`echo$line|awk-F","'{print$2}'`

    v_status=`echo $line|awk -F"," '{print $3}'`

无论是在 Shell 中对 BASH 脚本返回值的处理,还是在脚本中对函数返回值的处理,都是通过 "$?" 系统变量来获得。BASH 要求返回值必须为一个整数,不能用 return 语句返回字符串变量。

BASH 中通过 read 函数来实现读取用户输入的功能,如下面这段程序:

#!/bin/bash

echoPleaseenteryourname

readNAME

echo"Hi!$NAME!"

exit 0

运算符    含义( 满足下面要求时返回 TRUE )

-efile文件file已经存在

-ffile文件file是普通文件

-sfile文件file大小不为零

-dfile文件file是一个目录

-rfile文件file对当前用户可以读取

-wfile文件file对当前用户可以写入

-xfile文件file对当前用户可以执行

-gfile文件file的GID标志被设置

-ufile文件file的UID标志被设置

-Ofile文件file是属于当前用户的

-Gfile文件file的组ID和当前用户相同

file1-ntfile2文件file1比file2更新

file1 -ot file2        文件 file1 比 file2 更老

getopts的用法:

可以-d -e参数

:de: 第一个冒号忽略错误,第二个冒号表示参数接受值

#!/bin/sh

whilegetopts:de:opt;

do

case$optin

d)

echo"hello,world";;

e)

echo$opt;;

esac

done

相关推荐