shell脚本常用方法总结
shell脚本给字符串添加颜色
字颜色:
echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m 黄色字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天蓝字 \033[0m" echo -e "\033[37m 白色字 \033[0m" 字背景颜色: echo -e "\033[40;37m 黑底白字 \033[0m" echo -e "\033[41;37m 红底白字 \033[0m" echo -e "\033[42;37m 绿底白字 \033[0m" echo -e "\033[43;37m 黄底白字 \033[0m" echo -e "\033[44;37m 蓝底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天蓝底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m" 字体变为红色并且不停的闪烁: echo -e "\033[31m \033[05m 北京欢迎你 \033[0m"
shell脚本判断执行用户
#!/bin/bash if [ `whoami` == "root" ];then echo "是root用户执行" fi
shell curl只返回HTTP状态码
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com
-I 只返回响应头 -m 允许传输的最长时间 -s 静默模式,不输出任何东西 -w %{http_code} 完成后输出状态码
-o 输出到文件
shell脚本中的一些特殊变量
$$ shell本身的PID $! shell最后运行的后台Process的PID $? 可以获取上一个命令的退出状态 $# 打印传入shell的参数个数 $0 shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数
$@和$*的区别 $@和$*都有打印传入shell的所有变量的意思;当$@和$*不被""双引号包含时,都以"1" "2" "3"的形式输出所有参数; 举个例子说明被""双引号包含时的状态: [root@jump ~]# cat aaa.sh #!/bin/bash fun() { echo "$#" } echo '"$@" 的参数为' $@ echo '"$*" 的参数为' $* echo '"$@" 的参数个数 '$(fun "$@") "个" echo '"$*" 的参数个数' $(fun "$*") "个" 执行结果: [root@jump ~]# bash aaa.sh 1 2 3 "$@" 的参数为 1 2 3 "$*" 的参数为 1 2 3 "$@" 的参数个数 3 个 "$*" 的参数个数 1 个 结论: 当aaa脚本运行后,$@的参数为"1" "2" "3";$*的参数为"1 2 3";所以$@的参数数量为3个;$*的参数数量为1个;
shell脚本中的比较
-eq 等于 -ne 不等于 -gt 左边大于右边 -lt 左边小于右边 -ge 左边大于等于右边 -le 左边小于等于右边
shell的逻辑与或非
逻辑与 "-a" if [command1 -a command2] 两个条件都要满足 逻辑或 "-o" if [command1 -o command2] 两个条件只要满足1个即可 逻辑非 "!" if [! command] 条件表达式的相反结果 ###第二种方式### &&运算符 command1 && command2 command1执行结果为真,则command2才能够被执行;只要有一个命令的执行结果为假,则后面的命令就不会被执行;实现逻辑与的功能; ||运算符 command1 || command2 command1执行结果为假,则执行command2;实现逻辑或的功能;