shell 常用命令总结

#!/bin/bash

if [ $1 -gt 90 ]
then
  echo "Good, $1"
elif [ $1 -gt 70 ]
  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;;
 ...
 * )
  default statments;;
esac

数字比较
    -lt,小于
    -le,小于等于
    -eq,等于
    -ge,大于等于
    -gt,大于
    -ne,不等于


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

如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1`
字符串比较
    =
    !=

      >

    <
   
if [ $a = "111" ] 中间必须加空格
-d file :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

echo Please enter your name
read NAME
echo "Hi! $NAME !"

exit 0


运算符    含义( 满足下面要求时返回 TRUE )
-e file        文件 file 已经存在
-f file        文件 file 是普通文件
-s file        文件 file 大小不为零
-d file        文件 file 是一个目录
-r file        文件 file 对当前用户可以读取
-w file        文件 file 对当前用户可以写入
-x file        文件 file 对当前用户可以执行
-g file        文件 file 的 GID 标志被设置
-u file        文件 file 的 UID 标志被设置
-O file        文件 file 是属于当前用户的
-G file        文件 file 的组 ID 和当前用户相同
file1 -nt file2        文件 file1 比 file2 更新
file1 -ot file2        文件 file1 比 file2 更老



getopts的用法:

可以-d -e参数

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

#!/bin/sh
while getopts :de: opt;
do
case $opt in
d)
 echo "hello,world";;
e)
 echo $opt;;
esac
done



你可能感兴趣的:(shell)