Linux Shell 编程速查表

持续更新..

整理记录常用 shell 代码段。

基础变量

1
2
3
4
5
6
7
# 获取当前脚本所在目录
SHELL_FOLDER=$(dirname $(readlink -f "$0"))

# 获取当前时间 20200123112233
DATETIME=$(date +%Y%m%d%H%M%S)
# 获取当前时间 2020-01-23 11:22:33
DATETIME=$(date +%Y-%m-%d %H:%M:%S)

语法示例

逻辑判断

1
2
3
4
5
6
7
8
# 判断文件夹是否存在
if [ -d /path/to/folder ]; then
# do somthing if the folder exists
fi
# 判断文件是否存在
if [ -f /path/to/file ]; then
# do somthing if the file exists
fi

循环

1
2
3
4
5
# for 循环 (需要bash执行,ubuntu 默认sh不支持此语法)
for ((i=0; i<N;i++));
do
# ...
done

自定义参数

1
2
3
4
5
# 取第N个参数,如果不存在,设置默认值
OUTPUTDIR=$1
if [ ! $OUTPUTDIR ]; then
OUTPUTDIR=/var/log/top_monitor/
fi

实用功能集锦

1
2
3
4
5
6
7
8
9
10
# 判断命令是否存在
function is_cmd_exist() {
return $(type $1 &>/dev/null)
}

# 删除N分钟之前的文件, 例如:6 小时 = 360分钟
find /your/path -type f -mmin +360 -delete

# top 导出文本格式
top -b -c -n 1 > /path/to/save