我有两个用户:User1 和 User2。
我在 User2 主文件夹中有这个 script1.sh:
#!/bin/bash
cd /home/user1 && ./script2.sh
调用script2.sh:
#!/bin/bash
if [ 2 > 1 ]; then
echo TRUE!.
else
echo NOT TRUE!
fi
现在,当我使用 user1 执行 script1 时,一切正常。当我使用 user2 执行时,出现此错误:
./script2.sh: line 3: 1: Permission denied
说我不能……如果?如果我在终端上写下所有内容,它也会起作用。所以我的权限:
-rwxrwxr-x 1 user2 group_with_both_users 149 Ago 19 02:41 script2.sh
-rwxr-xr-x 1 user2 group_with_both_users 60 Ago 19 01:38 script1.sh
我真的不知道发生了什么事。
答案1
线路
if [ 2 > 1 ]; then
导致 shell 尝试打开名为1
write 的文件。请REDIRECTION
阅读bash 手册页解释一下。你user1
显然有权写入该文件,但user2
实际上却不行。
你很可能想到了这一点:
if [ 2 -gt 1 ]; then
测试 2 是否大于 1,除了 1 的非常大的值外,这显然是正确的。