有一个配置文件文件中每一行都是以冒号分隔的两个文件路径需要用shell编写一个脚本以 函数的方式 判断冒号左边的文件是否存在如果不存在则判断右边文件是否存在将右边的文件名修改为左边的文件名。
可以使用以下shell脚本来实现:
#!/bin/bash
function check_and_rename() {
IFS=":"
while read -r left right; do
if [[ ! -e $left ]]; then
if [[ -e $right ]]; then
mv "$right" "$left"
echo "Renamed $right to $left"
else
echo "$left does not exist and $right does not exist"
fi
fi
done < "$1"
}
check_and_rename "config_file.txt"
这个脚本将文件名作为参数传递给函数check_and_rename。函数首先将每一行按照冒号(:)分割成两个变量left和right。然后,它检查$left是否存在,如果不存在,则检查$right是否存在。如果$right存在,则将其重命名为$left。最后,脚本将输出重命名的结果或者文件不存在的消息
原文地址: https://www.cveoy.top/t/topic/iNNY 著作权归作者所有。请勿转载和采集!