所以我想在 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")
知道我哪里出错了吗?先感谢您!
答案1
您当前的问题可能是这一行:
last_modified='stat -c "Y" $/home/userr/textfile'
在那里将字符串分配stat -C "Y" ...
给变量。您可能想要做的是分配命令的输出,stat -c %Y /home/userr/textfile
您可以如下编写:
last_modified="$(stat -c %Y /home/userr/textfile)"
我建议#!/bin/sh -e
对所有 shell 脚本使用(这里不需要 bash :) ),其中-e
启用快速失败行为,这样错误就不会被检测不到。