目录
############################# if command then commands fi ############################# if command then commands else commands fi ############################# if command1 then commands elif command2 then commands fi ############################
n1 -eq n2 | n1与n2是否相等 |
n1 -ge n2 | n1是否大于等于n2 |
n1 -gt n2 | n1是否大于n2 |
n1 -lt n2 | n1是否小于n2 |
n1 -le n2 | n1是否小于等于n2 |
n1 -ne n2 | n1是否不等于n2 |
str1=str2 | str1是否与str2相等 |
str1!=str2 | str1是否和str2不同 |
str1<str2 | str1是否小于str2 if【 $val1 \< $val2 】 |
str1>str2 | str1是否大于str2 if【 $val1 \> $val2 】 |
-n str1 | str1长度是否非0 |
-z str1 | str1长度是否为0 |
-d file | 是否存在,并是一个目录 |
-e file | 是否存在 |
-f file | 是否存在,并是一个文件 |
-r file | 是否存在并可读 |
-s file | 是否存在并非空 |
-w file | 是否存在并可写 |
-x file | 是否存在并可执行 |
-O file | 是否存在并属于当前用户所有 |
-G file | 是否存在并且默认组与当前用户组相同 |
file1 -nt file2 | 检查file1是否比file2新 |
file1 -ot file2 | 检查file1是否比file2旧 |
[ condition1 ] && [ condition2 ] [ condition1 ] || [ condition2 ]
case variable in pattern1 | pattern2) command1;; pattern3) command2;; *) default commands;; esac
数学运算: ((expr))
正则 ` expr `
for var in list do commands done ########################### 默认分隔符为空格,更改: IFS=$'\n' ########################### for(( i=1; i<=10; i++ )) do echo "$i" done ########################### while test command do other commands done ############################ until test commands do other commands done ###########################
$? ###上一个命令的返回值 $0 ###命令路径名 $1...$n ####第几个参数 $# ###脚本的参数个数 ,最后一个参数 ${!#} $* ###将命令行上的所有参数当做单个变量保存 $@ ###将命令行上提供的所有参数当做同一个字符串中的多个独立的单词 $$ ###进程id $! ###最近一个后台命令的进程id
cat < test1 标准输入 ls -l > test1 标准输出 ls -l >> test1 追加 ls -l 2>test1 重定向标准错误 ls -l test test2 1>test5 2> test6 重定向标准输出,标准错误 ls -l test &> test1 重定向标准错误和输出到同一个文件 echo "xx" > &2 将标准输出显示在标准错误的位置 exec 1 > test 将脚本中的标准输出重定向到test 0 < testfile 2 > test ######################################################## exec 3 > &1 把3重定向到标准输出 exec 1 > test14out 把标准输出重定向到test14out exec 1 > &3 把标准输出重定向到3 ######################################################## exec 6 < &0 把stdin保存到6 exec 0 < test stdin重定向到test exec 0 < &6 stdin恢复 ######################################################## exec 3 > &- 关闭文件描述符 ls -al > /dev/null 阻止命令输出 ####################################################### mktemp testing.XXXXXX 创建临时文件 mktemp -t test.XXXXXX 在tmp目录创建临时文件 mktemp -d dir.XXXXXX 创建临时目录 ######################################################## date |tee testfile 将date输出到标准输出和testfile
function func{} ################################ function func{ echo 5 } result = `func` 返回值 ################################ local temp=5; 局部变量 ###########函数传递数组######## function test{ local newarray newarray=(`echo "$@"`) echo "${newarray[*]}" } myarray=(1 2 3 4 5) test ${myarray[*]} ################################