shell脚本常用语法雨临Lewis 收录于 计算机 2024-11-25 2025-03-02 约 712 字 预计阅读 2 分钟 次阅读 条评论目录 常用语法参考链接常用语法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 # 脚本的第一行申明是bash脚本 #!/bin/bash # 获取进程id pid=$(ps -ef|grep -v grep|grep java|awk '{print $2}') # echo,输出文本到控制台,-n表示输出末尾不换行 echo "flag is true" echo -n "flag is true" # 多行条件判断,-z表示值为空,-n表示值不为空 # [[]]是[]的扩展语法,支持一些更高级的功能,但需要在bash环境中(`#!/bin/bash`)使用 if [[ -n "$sys" ]]; then sysType="x86"; sys=`uname -a |grep aarch64` elif [[ -n "$sys" ]]; then sysType="aarch64"; sys=`uname -a |grep AIX` elif [[ -n "$sys" ]]; then sysType="aix"; fi # 单行条件判断,&&逻辑与,后面可以接另一个命令 [[ $flag == true ]] && echo -n "flag is true" # 循环 time=5 for ((i=1;i<=$time;i++)); do [[ $isEcho == true ]] && echo -n "$i秒" sleep 1 done # 读取用户输入 while true do read -p "请输入y/n,[y继续将忽略/n退出]:" inpt case $inpt in y) exit 0 ;; n) exit 1 ;; *) echo -n "输入错误" ;; esac done # 获取调用当前脚本时的输入参数,按顺序$1、$2、$3…… # $0:脚本本身的名字 # $@:传给脚本的所有参数的列表 # $$:脚本运行的当前进程ID号 # $?:显示最后命令的退出状态,0表示没有错误,其他表示有错误 deployEnv=$1; systemId=$2; terminalId=$3; sh test.sh [[ $? != 0 ]] && exit 1 # 字符串大小写转换 deployEnv="test"; # 首字母变为大写 deployEnv=${deployEnv^} # 全部变为大写 deployEnv=${deployEnv^^} # 首字母变为小写 deployEnv=${deployEnv,} # 全部变为小写 deployEnv=${deployEnv,,} # tr命令转换大小写 # 小写转大写 echo test|tr '[a-z]' '[A-Z]' # 大写转小写 echo test|tr '[A-Z]' '[a-z]' # awk配合toupper()或tolower()进行大小写转换 echo test|awk '{print toupper($0)}' echo TEST|awk '{print tolower($0)}' # 函数定义 APP_DIR=/test APP=test.jar checkpid() { javaps=`jps -l | grep $APP_DIR/$APP` if [ -n "$javaps" ]; then psid=`echo $javaps | awk '{print $1}'` else psid=0 fi } # 函数调用 checkpid 参考链接[Linux] shell编程之文本字母大小写转换【转载】注意本文最后更新于 March 2, 2025,文中内容可能已过时,请谨慎使用。 赞赏支持 微信打赏 支付宝打赏