非常实用的23个Shell脚本实例

检查文件是否存在

if [ -f file.txt ]; then
echo "文件存在"
else
echo "文件不存在"
fi

创建目录

mkdir -p /path/to/directory

拷贝文件

cp file.txt /path/to/directory

删除文件

rm file.txt

循环处理文件列表

for file in *.txt; do
echo $file
done

输出当前日期和时间

echo $(date)

获取当前脚本的路径

script_path=$(dirname "$(readlink -f "$0")")

获取命令行参数并进行判断

if [ $# -eq 0 ]; then
echo "没有参数"
else
echo "有参数"
fi

将命令输出重定向到文件

command > output.txt

判断字符串是否为空

if [ -z "$string" ]; then
echo "字符串为空"
else
echo "字符串不为空"
fi

判断两个字符串是否相等

if [ "$string1" = "$string2" ]; then
echo "字符串相等"
else
echo "字符串不相等"
fi

获取文件的行数

line_count=$(wc -l < file.txt)

在文件中搜索关键词并替换

sed -i 's/old_word/new_word/g' file.txt

执行命令并将结果保存到变量

result=$(command)

提示用户输入并保存到变量

read -p "请输入姓名:" name

计算两个数的和

sum=$((num1 + num2))

判断一个数是否为偶数

if ((num % 2 == 0)); then
echo "是偶数"
else
echo "不是偶数"
fi

判断一个数是否为质数

is_prime=true
for ((i=2; i<=num/2; i++)); do
if ((num % i == 0)); then
is_prime=false
break
fi
done
if $is_prime; then
echo "是质数"
else
echo "不是质数"
fi

循环执行命令直到满足条件

while ! command; do
sleep 1
done

批量重命名文件

for file in *.txt; do
mv "$file" "${file%.txt}.csv"
done

计算文件的md5哈希值

md5sum file.txt

批量压缩文件

tar -czvf archive.tar.gz file1.txt file2.txt

批量解压缩文件

tar -xzvf archive.tar.gz
阅读剩余
THE END