跳转至

01-shell-输出颜色

Shell 设置 echo 输出字体颜色

echo.sh 脚本
  • 一般输出为三种颜色,正确,警告,错误,错误会退出 exit,不会向下执行。
# 测试
cat > ./echo.sh <<'EOF'
#!/bin/bash
#===================  设置 echo 输出字体颜色   ===================
function echo_info() {
  echo '========================================================================================='
  echo -en "\033[1;32m""\033[3m$1 \033[0m\033[90G \033[1;32m\033[3m [ SUCCES ] \033[0m\n"
}

function echo_warning() {
  echo '========================================================================================='
  echo -en "\033[1;33m""\033[3m$1 \033[0m\033[90G \033[1;33m\033[3m [ warning ] \033[0m\n"
}

function echo_error() {
  echo '========================================================================================='
  echo -en "\033[1;31m""\033[3m$1 \033[0m\033[90G \033[1;31m\033[3m [ ERROR ] \033[0m\n"
  exit 2
}
echo 1
echo_info "开始计数"
echo 2
echo_warning "上次输出为 2"
echo 3
echo_error "上次输出为 3 错误,不会执行 4"
echo 4
EOF
  • 输出结果为下,错误不会向下执行,exit 退出

image-20230831135617853

检测命令

#!/bin/sh
_=$(command -v docker1);
if [ "$?" != "0" ]; then
  printf -- 'You don\'\''t seem to have Docker installed.\n';
  printf -- 'Get it: https://www.docker.com/community-edition\n';
  printf -- 'Exiting with code 127...\n';
  exit 127;
fi;

shell脚本中 if 语法嵌套

if [ 条件 ] then;
    command ...
else 
    if [ 条件 ] then; 
        command...
    else 
        command...
    fi 
fi

shell脚本如何比较字符串

#!/bin/bash
A="111"
B="222"

[[ "$A" == "$B" ]] && echo "字符串相同" || echo "字符串不同"

bash中有哪些特殊变量

$0 : 命令行中的脚本名字
$1..$9 : 脚本可接受的参数个数
$# : 命令行参数的数量
$* : 所有命令参数,转换为一个字符串
$@ : 所有命令参数,转换为一个字符串

shell 脚本中对文件的处理

-d : 文件是否存在且是目录
-e : 文件是否存在
-f : 文件是否存在且是普通文件
-r : 文件存在且是否可读
-s : 文件存在且不为空
-w : 文件存在且可写
-x : 文件存在且可执行

脚本中如何得到来自用户终端的输入值

#!/bin/bash
#
#auther: mage team
#
read -p "Please Enter Your Chooice: " STR
echo "${STR}"

如何引用一个变量

  • $VAR_NAME
  • ${VAR_NAME} #建议这种用法
    VAR_NAME_A=AAA
    VAR_NAME_B=BBB
    
    echo $VAR_NAME_A_$VAR_NAME_B
    echo ${VAR_NAME_A}_${VAR_NAME_B}
    
    输出结果为
    BBB
    AAA_BBB
    
break 有什么用

break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环

https://misc.flogisoft.com/bash/tip_colors_and_formatting