shell脚本常用方法总结

shell脚本给字符串添加颜色

字颜色:
  echo
-e "33[30m 黑色字 33[0m"   echo -e "33[31m 红色字 33[0m"   echo -e "33[32m 绿色字 33[0m"   echo -e "33[33m 黄色字 33[0m"   echo -e "33[34m 蓝色字 33[0m"   echo -e "33[35m 紫色字 33[0m"   echo -e "33[36m 天蓝字 33[0m"   echo -e "33[37m 白色字 33[0m" 字背景颜色:   echo -e "33[40;37m 黑底白字 33[0m"   echo -e "33[41;37m 红底白字 33[0m"   echo -e "33[42;37m 绿底白字 33[0m"   echo -e "33[43;37m 黄底白字 33[0m"   echo -e "33[44;37m 蓝底白字 33[0m"   echo -e "33[45;37m 紫底白字 33[0m"   echo -e "33[46;37m 天蓝底白字 33[0m"   echo -e "33[47;30m 白底黑字 33[0m" 字体变为红色并且不停的闪烁:   echo -e "33[31m 33[05m 北京欢迎你 33[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;实现逻辑或的功能;
原文地址:https://www.cnblogs.com/zhangzhide/p/15107851.html