Используйте grep-файл в качестве исходного кода в bash - PullRequest
1 голос
/ 16 марта 2010

Я на общем веб-хосте, где у меня нет прав на редактирование файла конфигурации глобального bash на /ect/bashrc. К сожалению, в глобальном файле есть одна строка mesg y, которая переводит терминал в режим tty и делает недоступными scp и аналогичные команды. Мой локальный ~./bashrc включает глобальный файл в качестве источника, например:

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

Мой текущий обходной путь использует grep для вывода глобального файла без поврежденной строки в локальный файл и использования , который в качестве источника.

# Source global definitions
if [ -f /etc/bashrc ]; then
    grep -v mesg /etc/bashrc > ~/.bash_global
    . ~/.bash_global
fi

Есть ли способ включить подобный файл без промежуточного этапа создания фактического файла? Как то так?

. grep -v mesg /etc/bashrc > ~/.bash_global

Ответы [ 4 ]

5 голосов
/ 16 марта 2010

потеряешь кота, его бесполезно

source <(grep -v "mesg" /etc/bashrc)

синтаксис <() называется подстановка процесса .

2 голосов
/ 16 марта 2010
. <(grep -v mesg /etc/bashrc)
1 голос
/ 16 марта 2010

Предлагаю позвонить mesg n:)

0 голосов
/ 16 марта 2010

из памяти, но что-то вроде

grep -v mesg /etc/bashrc | eval

должен сделать трюк

Так как я не уверен, что eval будет читать stdin, вам может понадобиться перефразировать его в

eval `grep -v mesg /etc/bashrc`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...