为什么同一个 .sh 不能与 2 个不同的用户一起执行?

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)

我真的不知道发生了什么。

zwe*_*ets 5

线

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 值。