我在共享的webhost上,我没有权限编辑全局bash配置文件/ect/bashrc.不幸的是,全局文件中有一行mesg y,它将终端置于tty模式,并使得scp类似的命令不可用.我的本地~./bashrc包括全局文件作为源,如下所示:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Run Code Online (Sandbox Code Playgroud)
我当前的解决方法用于grep将全局文件(无sans违规行)输出到本地文件中并将其用作源.
# Source global definitions
if [ -f /etc/bashrc ]; then
grep -v mesg /etc/bashrc > ~/.bash_global
. ~/.bash_global
fi
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有创建实际文件的中间步骤的情况下包含这样的grepped文件?像这样的东西?
. grep -v mesg /etc/bashrc > ~/.bash_global
Run Code Online (Sandbox Code Playgroud)
失去了猫,它没用
source <(grep -v "mesg" /etc/bashrc)
Run Code Online (Sandbox Code Playgroud)
的<()语法称为进程替换.