我是Linux新手,我想帮助一个脚本。我希望脚本创建一个文件并授予每个人读取,写入和执行它的权限,一分钟后,我希望权限只读,并回显“你不再有访问权限”的消息。
我尝试过以下操作,它会创建并提供权限,但会回显“您不再拥有访问权限”这一消息。
#!/bin/bash
echo "enter time"
read time
touch bin/jozat
echo chmod 777 bin/jozat | at now + 1 minutes
echo chmod 700 bin/jozat | at now + 2 minutes && echo "you no longer have access"
答案 0 :(得分:2)
您想使用at(1)。
答案 1 :(得分:2)
我不知道如何使用at
,但我敢打赌你的echo
会为某些日志文件发送输出。此外,您不想在更新权限后发送echo
吗?您的脚本在注册at
中更改的权限后输出它,而不是在权限更改时输出。
我会将其替换为wall
,它将消息发送给所有终端中的所有用户。所以,我写了
echo 'chmod 700 bin/jozat && echo "you no longer have access" | wall' | at now + 2 minutes
而不是
echo chmod 700 bin/jozat | at now + 2 minutes && echo "you no longer have access"
请注意,所有命令chmod 700 bin/jozat && echo "you no longer have access" | wall
都在单引号之间。
这对你来说是一个很好的解决方案吗?
修改:wall
命令将消息发送给所有终端中的所有用户。如果只想将消息发送给执行代码的用户,可以使用write
命令和当前用户名:
echo 'chmod 700 bin/jozat && echo "you no longer have access" | write `whoami`' | at now + 2 minutes