@WillireamAngel
2018-06-17T07:39:41.000000Z
字数 2096
阅读 1565
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 <file
while read line
do
....
done
cat file | while read line
...
while read line
do
...
done<file
1.格式
for <variable> in list #循环调用取值列表,列表内容以空格区分
do
command
done
for((expr1;expr2;expr3)) #expr1为变量初始值,expr2为变量范围,expr3为变量自增减;先判断变量范围,循环,再处理自增减
do
command
done
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 list
do
...
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值。