#设置变量 export BL="123123" #显示变量 echo $BL printf $BL env $BL #取消变量 unset BL a=123-a$ b='456-$a' c="789-a$" echo "$a" echo "$b" echo "${c}"
http://blog.51cto.com/oldboy/760192
#进程状态变量 $0 //获取当前执行脚本文件名,如果执行脚本带路径会一起显示 $n //获取当前shel脚本的第n个参数值,n=1..0,当n为0时表示脚本的文件名,如果n大于9,就用大括号括起来${10} $* //获取当前脚本所有参数, $# //获取当前shell命令行中传参数的总个数 $? //获取执行上一个命令的返回值(0为成功,非0为失败) $@ //这个程序的所有参数 $$ //当前shell进程号PID $! //获取执行上一个指令的PID $_ //在此之前执行的命令或脚本的最后一个参数 $- //显示shell使用的当前选项,与set命令功能相同
#bash 内部变量 echo //输出 eval args //当shell执行到eval语句时,shell读入参数args,并将他们组合成一个新的命令,然后执行 export //shell可以恋情export把它的变量向下带入子shell,从遥让子进程继承父进程中的环境变量。但子shell不能用export把它的变量向上带入父变量。 readonly //将就一个用户定义的shell变量标识为不可变。不带任何参数的readonly命令将显示出所有只读的shell变量 read //从标准输入读字符串等信息,传给shel程序内部定义的变量 wait //使shell等待在后台启动的所有子进程结束。wait的返回值总是真。 exit 11 //退出.返回值给$?变量 retrun 0 返回值给$?变量 . //读入指定shell程序文件并依次执行文件中的所有语句 shift // 移动位置变量
#变量的子串替换知识 $(#BL) //加#取变量长度 echo $BL |wc - L 取长度 ${BL:2} //取指定字符 ${BL:2:4} //取指定字符 cat -c 3-4 //取指定字符 ${BL#xxx} //删除变量里xxx的内容 -z //是否空 -a //并且 -o //或 -eq //等于 -ge //大于等于 -gt //大于 -le //小于等于 -lt //小于 -ne //不等于 -f //检查文件是否存在(例如,if [ -f "filename" ]) -d //检查目录是否存在 [ -f "somefile" ] 判断是否是一个文件 [ -x "/bin/ls" ] 判断/bin/ls是否存在并有可执行权限 [ -n "$var" ] 判断$var变量是否有值 [ "$a" = "$b" ] 判断$a和$b是否相等 -r file 用户可读为真 -w file 用户可写为真 -x file 用户可执行为真 -f file 文件为正规文件为真 -d file 文件为目录为真 -c file 文件为字符特殊文件为真 -b file 文件为块特殊文件为真 -s file 文件大小非0时为真 -t file 当文件描述符(默认为1)指定的设备为终端时为真
#变量的数值计算 (())、let、expr、bc(小数)、 $[] 比较大小 [root@A-host sh]# echo $((6<2)) 0 //假,no, [root@A-host sh]# echo $((6>2)) 1 //真,yes, [root@A-host sh]# echo $((6==2)) 0 //假,no, #!/bin/bash echo "结果= $(($1))"
#shell变量输入 read //从标准输入获得参数 -p //设置提示信息 -t //设置输入等待时间,单位为秒
#脚本控制 nohup xxx.sh & //后台执行 ctl+c //停止当前 ctl+z //暂停当前 bg //放到后台 fg //放到前台 jobs //显示后台执行的脚本或任务 pstree //显示进程状态树 top //显示进程 nohup //退出系统之后继续工作 pgrep //查找匹配条件的进程 break n //如果省略n,则跳出整个循环 continue n //如果省略n,则跳出本次循环 exit n //如果省略n,则退出当前shell脚本 return n //如果省略n,函数退出,下个shell个通过$?接受返回值
#windows下编写脚本问题。 使用 dos2unix 对脚本进行格式化。
停留在世界边缘,与之惜别