所以我想在 shell 中创建一个脚本,当它执行时,要么修改文件,要么回显一条消息。
这是我设法写的:
#!/bin/bash
current=$(date +%s)
last_modified='stat -c "Y" $/home/userr/textfile'
if
[ $((current-last_modified)) -gt 120 ]; then
touch /home/userr/textfile;
else
echo "File was modified less than 2 minutes ago";
fi
ShellCheck 说一切正常,但是当我尝试执行它时,它说:
stat -c "Y" $/home/userr/textfile: syntax error: invalid arithmetic operator (error token is ""Y" $/home/userr/textfile")
知道我哪里出错了吗?先感谢您!
您的直接问题可能是这一行:
在那里,您将字符串分配给
stat -C "Y" ...
变量。您可能想要做的是分配命令的输出stat -c %Y /home/userr/textfile
,您可以编写如下:我建议使用
#!/bin/sh -e
所有的 shell 脚本(你不需要 bash :)),其中-e
启用快速失败的行为,这样错误就不会被发现。