标签:用户输入 后退 分享图片 定义 shell命令 win 条件判断 lin sighup
if 条件1;then
COMMAND
elif 条件2;then
COMMAND
else
COMMAND(:) : 表示pass 不执行任何命令
fi
读取用户输入在进行数据判断
1 echo -n "输入你的数字: " 2 read userinput 3 expr $userinput+ 0 &>/dev/null 4 if [ $? -ne 0 ]; then 5 echo "必须输入数字!" 6 continue 7 else 8 COMMAND 9 fi
case 变量引用 in
PAT1)
分支1
;;
esac
变量名和变量引用的区别: 变量引用就是需要在变量名前面添加一个$, name表示变量名 $name表示变量引用
并行执行shell命令 wait的作用是表示后台命令执行完毕后退出程序,默认后台程序结束后需要手动敲回车键才能退出程序
1 net=172.17.51 2 for i in {1..254};do 3 { if ping -c1 -w1 $net.$i &> /dev/null ;then 4 echo $net.$i is up 5 else 6 echo $net.$i is down 7 fi; } & 8 done 9 wait
for(( exp1; exp2; exp3 )); do COMMANDS; done
exp1 是循环的初始化语句 实际上不参与循环
exp3 相当于循环体中的最后一条语句
exp2 为循环条件的判断语句 每次执行循环体之前都必须先判断exp2的执行结果
1 #!/bin/bash 2 declare -a array 3 for((i=1;i<=10;i++)) 4 do 5 array[$i]=$((RANDOM%100)) 6 done 7 8 MIN=${array[1]} 9 MAX=${array[1]} 10 11 for num in ${!array[@]};do 12 echo $((array[${num}])) 13 if [[ ${MIN} -ge ${array[${num}]} ]];then 14 MIN=${array[${num}]} 15 fi 16 if [[ ${MAX} -le ${array[${num}]} ]];then 17 MAX=${array[${num}]} 18 fi 19 20 done 21 echo "the min is $MIN" 22 echo "the max is $MAX"
1 #!/bin/bash 2 declare -i min max 3 declare -a nums 4 for((i=0;i<10;i++));do 5 nums[$i]=$RANDOM 6 [ $i -eq 0 ] && min=${nums[$i]} && max=${nums[$i]} && continue 7 [ ${nums[$i]} -gt $max ] && max=${nums[$i]} 8 [ ${nums[$i]} -lt $min ] && min=${nums[$i]} 9 done 10 echo "all numbers are ${nums[*]}" 11 echo Max is $max 12 echo Min is $min
1 #!/bin/bash 2 re=`wc -l $1 | cut -d " " -f1` 3 echo $re
continue 和 break 后面可以添加一个数字N,表示提前结束第N层的本轮循环从而直接进入下一轮的判断,最内层的循环为第1层
continue 2 or break 3
将参数列表向左移动,默认移动单位为1,移动后的参数会自动被删除.使用的场景:配合循环遍历逐个处理提供给执行脚本的位置参数
循环遍历文件或者命令的标准输出
1 df | while read line;do 2 echo $line 3 done; 4 5 while read line;do 6 echo $line 7 done < /root/file
select variable in list
do
循环体命令
done
select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在 标准错误上,并显示 PS3 提示符,等待用户输入
用户输入菜单列表中的某个数字,执行相应的命令
用户输入被保存在内置变量 REPLY 中
trap ‘触发指令‘ 信号 自定义进程收到系统发出的指定信号后,将执行触发指令,而不会执行原操作
trap ‘‘ 信号 忽略信号的操作
trap ‘-‘ 信号 恢复原信号的操作
使用 kill -l 查看所有能捕捉的信号数据
trap "echo press ctrl+c" 2
kill -9 的信号无法被捕捉到
[root@iz2ze6e5pr6sbu9qxhzulaz ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
标签:用户输入 后退 分享图片 定义 shell命令 win 条件判断 lin sighup
原文地址:https://www.cnblogs.com/yxh168/p/9004821.html