我试图在bash中创建一个脚本。如果文件不存在,或者如果它退出,那么该脚本应该退出并提示,一旦修改或删除,退出并提示提示。参数$ 1用于文件名,参数$ 2用于每次检查之间的时间间隔。使用-N来检查文件是否被修改是否足够? 到目前为止的代码(几个小错误,即时通讯工作):linux-bash脚本 - 测试文件
#!/bin/bash
running=true;
while[ $running ]
do
if [ ! -f $1 ]; then
echo "File: $1 does not exist!"
running=false;
fi
if [ -f $1 ]; then
if [ ! -N $1 ]; then
sleep [ $2 ]
fi;
elif [ -N $1 ]; then
echo "File: $1 has been modified!"
running=false;
fi;
fi;
done;
更好地使用'running = 1' /'running = 0'和while((running)); do''true'和'false'不要除非你把它们作为命令运行,否则它们有特殊的含义 –
...你应该从'[]'切换到'[[]]'或者确保对所有的扩展名加双引号,也就是说,无论是[[[-f $ 1]]还是'[-f“$ 1”]',而不是*'[-f $ 1]'。 –
... “睡眠”2美元,而不是“睡眠2美元”。方括号是“测试”命令的同义词,测试命令不是睡眠语法的一部分。 (它不是'if'语法的一部分,但这是一个单独的问题)。 –