我想使用以下命令执行脚本中的所有命令command -p
:
command -p pwd
因为我可能会在脚本中执行一些命令,其名称被其他一些自定义用户脚本使用,在这种情况下,该command
命令会导致执行系统命令而不是用户的命令(这是一个友好的解释,如果您想要从技术上了解幕后真正发生的事情,请查阅手册页)这就是我想要的。
好吧,这样我就不必command -p
每次在脚本中调用任何命令时都在行首逐字输入“”,有没有办法command -p
在脚本中定义全局的行为?
我想使用以下命令执行脚本中的所有命令command -p
:
command -p pwd
因为我可能会在脚本中执行一些命令,其名称被其他一些自定义用户脚本使用,在这种情况下,该command
命令会导致执行系统命令而不是用户的命令(这是一个友好的解释,如果您想要从技术上了解幕后真正发生的事情,请查阅手册页)这就是我想要的。
好吧,这样我就不必command -p
每次在脚本中调用任何命令时都在行首逐字输入“”,有没有办法command -p
在脚本中定义全局的行为?
我想了:
#!/bin/bash
cmd --options \
option=value,\
option=value,\
option=value,\
option=value
但运行bash -x
我得到:
cmd --options option=value, option=value, option=value, option=value
这会导致错误。
我怎样才能做到这一点,这样 bash 就不会自动放置这个空格?
如果该文件是 root 使用以下命令创建的纯文本文件:
echo 'foo' > ./file.txt
你的ls -l
是:
-rw-r--r-- root root ./file.txt
但作为普通用户,我可以使用vim保存:w!
或使用sed命令来更改此设置,当发生这种情况时,拥有此文件的用户和组将更改为:
-rw-r--r-- user user ./file.txt
我注意到,当删除其他人的读取权限后,chmod o-r ./file.txt
我无法再进行更改,但是当恢复时,chmod o+r ./file.txt
我可以再次进行更改。
这里发生了什么?为什么“其他”读取权限使我能够更改 root 拥有的文件并更改用户和组所有权?
为什么会发生这种情况?
PS:我使用的是Debian SID。