1. 分支与循环
# 分支
if [[ judge == 0 ]]; then
echo "..."
else
echo "..."
fi
# 循环
for elem in elem_1 elem_2 elem_3; do
echo $elem
done
# 循环
list_1=(elem_1 elem_2 elem_3)
list_2=(elem_4 elem_5 elem_6)
for (( i = 0 ; i < 3 ; i++ )) do
echo ${list_1[$i]}
echo ${list_2[$i]}
done
2. 判断文件(夹)是否存在与新建文件
# 判断文件夹是否存在
if [ ! -d ".../dir/" ]; then
mkdir ".../dir/"
fi
# 判断文件是否存在
if [ ! -f ".../file" ]; then
touch ".../file"
fi
3. 压缩与解压缩
# zip 压缩
zip -r zip_file.zip /path/to/file
# zip 解压缩
unzip zip_file.zip
# tar.gz 压缩
tar –czvf zip_file.tar.gz /path/to/file
# tar.gz 解压缩
tar -xzvf zip_file.tar.gz
4. 算术运算
# 计算 4 + 5
$(( 4 + 5 ))
# 计算 4 × 5
$[ 4 * 5 ]
5. 替换字符串
# 在 file 中逐行替换,把 str1 替换为 str2 ,可以用正则表达式
sed -i 's/str1/str2/' file
# 在 file 中全局搜索,把 str1 替换为 str2 ,可以用正则表达式
sed -i 's/str1/str2/g' file
# 在 dir 目录下的文件中把 str1 替换为 str2 ,可以用正则表达式
sed -r 's/str1/str2/g' dir
6. 断点续传
# wget 下载文件时断点续传
wget -c https://download_website.com
# rsync 在服务器和终端之间传输文件时断点续传
rsync -P source_file target_file
注意:
1. Bash脚本对空格的判定比较严格,随意添加或删除空格可能导致脚本不能正常运行。
2. Bash对换行符的判定比较严格,必须使用Linux而不是Windows换行符。