修改全局变量
1 2 3 4 5 6 7 8 9 10 11 12 13
| #!/bin/bash
my_var="initial value"
my_function() { # 声明 my_var 为全局变量 declare -g my_var my_var="new value" }
echo "Before function call: my_var=$my_var" my_function echo "After function call: my_var=$my_var"
|
获取脚本所在绝对路径
脚本中涉及到一些路径的时候可以用绝对路径,这样可以再任意地方执行脚本。而不用 cd 到固定的目录
1 2 3
| SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" echo "SCRIPT_DIR: $SCRIPT_DIR"
|
文件路径相关操作
1 2 3 4 5 6 7 8
| DIR=$(dirname /path/file.txt)
FILE=$(basename /path/file.txt)
FILE_NAME=${FILE.*}
|
获取环境变量的值
1 2
| VAR="${VAR:-default_value}"
|
多行字符串换行符处理
某些 CI/CD 流程中可能会涉及到一些多行字符串,需要对换行符进行特殊处理,比如转义
1 2 3 4 5 6 7 8 9
| original_string=" 这是一个包含 换行符的 字符串 "
escape_string=$(echo "$original_string" | sed ':a;N;$!ba; s/\n/###/g') echo $escape_string
|
后台执行程序
同 nohup COMMOND &