Bash|Bash 常用脚本片段
获取一些常用变量:
# 获取当前脚本所在目录
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )# 获取当前脚本的文件名
SCRIPT_NAME=$( basename "$0" )# 在 $DIR 中搜索第一个 jar 文件的名字
JAR_FILE=$(find $DIR -maxdepth 1 -type f -name "*.jar" | head -1)
一些常用的判断:
# 判断变量是否为空
if [ -z "$VAR" ];
then
echo "\$VAR is empty"
else
echo "\$VAR is $VAR"
fi# 判断路径是否存在
if [ -d "$PATH" ];
then
echo "File $PATH exists"
else
echo "File $PATH not found"
fi# 判断当前用户是否是 root
if [ "${EUID:-$(id -u)}" -eq 0 ];
then
do_root_stuff
fi# 判断 docker 命令能否执行
if ! command -v docker &> /dev/null;
then
echo "当前系统不能运行 docker 命令"
fi
根据命令中的关键字搜索进程ID
# set pid=$(get_pid "some-service-name")
get_pid() {
SERVICE_NAME=$1
PID=$(ps aux | grep "[${SERVICE_NAME:0:1}]${SERVICE_NAME:1}" | awk '{print $2}')
echo "$PID"
}
解析并查询命令行参数的通用方法 【Bash|Bash 常用脚本片段】这段脚本非常有用,你只要在你的脚本开头加上下面的内容,就能以
--param value
的格式解析参数。这段脚本尽可能写的短小不占空间,所以格式方面,要求所有的参数都有值,例如不接受无参数的 --daemon
,而必须传 --daemon true
。### 解析命令行参数
PARAMS_ARR=()
while (( "$#" ));
do
case "$1" in --*) PARAMS_ARR+=($1);
shift;
;
*) PARAMS_ARR[-1]="${PARAMS_ARR[-1]} $1";
shift;
;
esac
done
### 获取命令行参数,如果没有则返回默认值
### 示例:value=https://www.it610.com/article/$(get_param"param_name" "default_value")
function get_param {
for param in "${PARAMS_ARR[@]}";
do if [[ $param =~ "--$1" ]];
then echo ${param#"--$1"} && return 0;
fi done
echo $2
}
### 获取命令行参数,如果没有则报错退出(退出机制需要 set -e 来开启,否则你就要自行处理返回值)
### 示例:value=https://www.it610.com/article/$(get_param_required"param_name")
function get_param_required {
for param in "${PARAMS_ARR[@]}";
do if [[ $param =~ "--$1" ]];
then echo ${param#"--$1"} && return 0;
fi done
echo -e "\e[31mParameter '$1' is required\e[m" >&2 && return 1
}
set -e
推荐阅读
- Shell-Bash变量与运算符
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 数组常用方法一
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- Linux|109 个实用 shell 脚本
- 常用git命令总结
- java|java 常用知识点链接
- 误删/清空.bashrc文件/内容
- c#常用网址记录
- 5|5 个 PPT 常用快捷键带你从此走向高效