0 command-line bash scripts users .sh
我有两个用户 User1 和 User2。
我在 User2 主文件夹中有这个 script1.sh:
#!/bin/bash
cd /home/user1 && ./script2.sh
Run Code Online (Sandbox Code Playgroud)
调用script2.sh:
#!/bin/bash
if [ 2 > 1 ]; then
echo TRUE!.
else
echo NOT TRUE!
fi
Run Code Online (Sandbox Code Playgroud)
现在,当我使用 user1 执行 script1 时,一切正常。当我使用 user2 执行时,出现此错误:
./script2.sh: line 3: 1: Permission denied
Run Code Online (Sandbox Code Playgroud)
说我不能……如果?如果我在终端上写下所有内容,它也可以工作。所以我的权限:
-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
Run Code Online (Sandbox Code Playgroud)
我真的不知道发生了什么。
线
if [ 2 > 1 ]; then
Run Code Online (Sandbox Code Playgroud)
导致 shell 尝试打开一个名为 write 的文件1。阅读部分REDIRECTION在bash的手册页作出解释。您user1显然被允许写入该文件,但user2不是。
你可能想到了这个:
if [ 2 -gt 1 ]; then
Run Code Online (Sandbox Code Playgroud)
哪个测试 2 是否大于 1,这显然是正确的,除了非常大的 1 值。