如果文件名存在则替换该脚本?

如果文件名存在则替换该脚本?

我正在尝试编写一个脚本,如果文件已存在,则将文件的名称更改为类似 file1.txt 的名称,但我一直收到相同的错误:语法错误:意外的文件结束到目前为止,我已经完成了以下操作:

#! /bin/bash
FILE=/home/skrips/file.sh
ls -l /home/skrips/*/
ls /home/skrips/*/ > $(date '+%d:%m:Y%').file.txt
if [ -f " $FILE" ]; then
mv -i $(date '+%d:%m:Y%').file.txt file.txt $(date '+%d:%m:Y%').file+1
fi

答案1

(不是答案,而是格式化的评论)

if [ -f " $FILE" ]; then
# .......^

那个空间在那里做什么?

我强烈建议您使用日期格式%Y-%m-%d。这不仅是 ISO 标准格式,而且按时间顺序和词汇顺序排列 -ls将以正确的顺序显示它们。

答案2

我能够使用这个脚本来运行该脚本:

#! /bin/bash
ls -l /home
date=$(date +%F)
end_a="-file"
end_b=".txt"
number=1
counter=0
continue=$(echo $(($number + $counter)))
file=${date}${end_a}${continue}${end_b}
while [ -f $file ]; do
let counter=counter+1 continue=$(echo $(($number + $counter)))
file=${date}${end_a}${continue}${end_b}
done
Is -l /home > $file

相关内容