UNIX (Bash) 中的脚本用于确定用户是否是文件所有者

UNIX (Bash) 中的脚本用于确定用户是否是文件所有者

可以接受任意数量的参数,每个参数都是文件或目录的路径。如果用户确实拥有特定路径,则应检查该路径是否代表普通文件以及该文件是否可执行。如果是,则您的脚本应执行/运行该文件。

谢谢您的帮助,我已经尝试不同的事情太久了,但我感到沮丧。

答案1

magic() {
    for p in "$@"; do
        [ -O "$p" -a -x "$p" ] && /bin/sh "$p"
    done
}

阅读“man test”来了解检查的作用。

答案2

测试-O检查当前用户是否是文件或文件夹的所有者。

if [ -O "$FILENAME" ]; then echo 'Owned!'; else echo 'Nope!'; fi

文件测试操作符列表(和一般如何进行测试

由于平台之间的差异,在 *nix 上使用stat此目的的可移植性较差。

答案3

要获取当前用户 ID,您可以执行以下操作:

id -u

要获取文件所有者,您可以执行以下操作:

stat -c "%u" file.name

要测试一个值是否与另一个值相同,请执行以下操作:

if [ "$first" -eq "$second" ]
then
    ....
fi

相关内容