@WillireamAngel
2018-06-17T07:39:41.000000Z
字数 2096
阅读 1714
Shell
test <>[ <> ] #使用-a -o -gt -lt[[ <> ]] #使用&& || > <((<>)) #常用于if
-d 判断是否为文件
-f 是否为普通文件
-e 存在与否
-r 可读
-w
-x
-L 是否为链接文件
f1 -nt f2 较新
f1 -ot f2 较旧
while:条件不成立时,终止循环
while <options>do......done
until:条件成立时,终止循环
until <options>do......done
sleep
sleep:以秒为单位,休息;usleep:以微妙为单位,休息。
后台运行进程
主要方法:
- ([command] [> output flie] [2>&1] &) #使用subshell实现进程后台运行
- nohup option COMMAND [>filename] [2>&1]... & #忽略hup信号
- setid #父进程切换为init
- screen -r session name #重新连接指定会话,建立伪终端
- disown -h jobspec #使某个作业忽略HUP信号
相关操作:
bg、fg、jobs、kill、ctrl+c、ctrl+z
exec <filewhile read linedo....done
cat file | while read line...
while read linedo...done<file
1.格式
for <variable> in list #循环调用取值列表,列表内容以空格区分docommanddone
for((expr1;expr2;expr3)) #expr1为变量初始值,expr2为变量范围,expr3为变量自增减;先判断变量范围,循环,再处理自增减docommanddone
2.使用
用于有限的循环。
echo $RANDOM openssl rand -base64 8 date +%s%N head /dev/urandom | cksum cat /proc/sys/kernel/random/uuid
-l 长度-d 数字数量-c 小写字母数量-C 大写字母数量-s 特殊字符数量
select variable in listdo...done
与for循环不一样的是,select会打印出简单的菜单项供用户选择,需要用户手动停止。
- select信息调整
数组表示法:array=(n m q) ${array[@]}
循环提示符:PS3=""
菜单项对应数字:$REPLY
exit n
退出当前shell程序,n为上一次程序执行的状态返回值,n省略下一个shell可通过“$?”接收exit n的n值
return n
用于在函数中作为函数的返回值,退出当前函数,以判断函数执行是否正确,下一个shell可通过“$?”接收exit n的n值。