我在共享的虚拟主机上,我无权在/ect/bashrc
编辑全局bash配置文件。遗憾的是,全局文件mesg y
中有一行,它将终端置于tty模式,并使scp
和类似命令不可用。我的本地~./bashrc
包含全局文件作为源,如下所示:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
我当前的解决方法是使用grep
将全局文件(无sans违规行)输出到本地文件中,并使用 作为源。
# Source global definitions
if [ -f /etc/bashrc ]; then
grep -v mesg /etc/bashrc > ~/.bash_global
. ~/.bash_global
fi
有没有办法在没有创建实际文件的中间步骤的情况下包含这样的grepped文件?像这样的东西?
. grep -v mesg /etc/bashrc > ~/.bash_global
答案 0 :(得分:5)
source <(grep -v "mesg" /etc/bashrc)
<()
语法称为process substitution。
答案 1 :(得分:2)
. <(grep -v mesg /etc/bashrc)
答案 2 :(得分:1)
我建议致电mesg n
:)
答案 3 :(得分:0)
从记忆中,但是像
grep -v mesg /etc/bashrc | eval
应该做的伎俩
由于我不确定eval会读取标准输入,你可能需要将其改写为
eval `grep -v mesg /etc/bashrc`