企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
shell中的变量都是全局变量,函数中的变量需要使用 local 将其变成局部变量,防止污染函数外的变量。 Bash变量只有两种类型,字符串和数组。 不过从严格意义上,Bash没有变量类型。Bash中的变量,在运行的时候会被展开成其对应的值(字符串) ## 静态变量 ``` readonly passwd_file=”/etc/passwd” readonly group_file=”/etc/group” ``` ## 大小写切换 ``` HI=HellO echo "$HI" # HellO echo ${HI^} # HellO echo ${HI^^} # HELLO echo ${HI,} # hellO echo ${HI,,} # hello echo ${HI~} # hellO echo ${HI~~} #hELLo ``` ^大写,,小写, ~大小写切换 重复一次只修改首字母,重复两次则应用于所有字母 ## 移除匹配的字符串 ``` %xx 从后往前,开始匹配,移除匹配的内容 %%xx 跟上面的差不多,不过这是贪婪匹配 #xx 从前往后,开始匹配,移除匹配的内容 ##xx 跟上面的差不多,不过这是贪婪匹配 ``` ``` FILENAME=/home/spacewander/param.sh echo ${FILENAME%/*} # /home/spacewander echo ${FILENAME%%/*} # echo ${FILENAME#*/} # home/spacewander/param.sh echo ${FILENAME##*/} # param.sh ``` ## 变量默认值 ``` number=${number:-"are you ok"} [ -n "$number" ] && echo $number ```