use*_*801 5 permissions bash scripts
我正在编写一个需要创建文件和目录的脚本,但在继续执行之前,我想运行检查以查看运行该脚本的用户是否具有读写访问权限。如果是这样,脚本应该继续,否则它应该告诉用户他们需要尝试在不同的目录中运行脚本。
通过test命令:
# doesn't echo OK, because no read-write permissions
$ [ -r /proc/28127/task/28189/fd ] && [ -w /proc/28127/task/28189/fd ] && echo "OK"
# echoes OK, because my user has read-write permissions to the directory
$ [ -r $HOME ] && [ -w $HOME ] && echo "OK"
OK
Run Code Online (Sandbox Code Playgroud)
可以将其放入函数中并将其存储到脚本中~/.bashrc或在脚本中使用:
check_dir() {
[ -r "$1" ] && [ -w "$1" ] && echo "OK"
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式使用:
$ check_dir $HOME
OK
Run Code Online (Sandbox Code Playgroud)
通过find命令:
# Doesn't return directory name because I don't have read/write permissions
$ find /proc/28127/task/28189/fd -maxdepth 0 -readable -writable
# Returns directory name, because I can write/read there
$ find $HOME -maxdepth 0 -readable -writable
/home/xieerq
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2027 次 |
| 最近记录: |