Как заставить .bashrc назвать иждивенца на tmux программе установленным?

Это на самом деле довольно просто - все, что необходимо сделать, изменить определение корневого каталога записи того пользователя в/etc/passwd.

3
12.08.2013, 20:05
2 ответа

Можно использовать команду type чтобы видеть, присутствует ли исполняемый файл на Вашем поле:

if [ -n "$(type -P tmux)" ]; then

    ...tmux is installed...

else

    ...tmux isn't installed...

fi

Я часто использовал этот фрагмент кода, чтобы сделать это:

$ [ -n $(type -P tmux) ] && echo "installed" || echo "not installed"
installed

Я могу фальсифицировать его использование альтернативы -n (не пустая строка), -z (пустая строка).

$ [ -z $(type -P tmux) ] && echo "installed" || echo "not installed"
not installed
6
27.01.2020, 21:13
  • 1
    , я уверен, что Вы знаете об этом, просто отправив его для будущих читателей: синтаксис cmd1 && cmd2 || cmd3 является на самом деле общей ловушкой Bash. Это вряд ли собьет с толку поток в этом случае, как бы то ни было. –  Joseph R. 04.08.2013, 16:25
  • 2
    @JosephR. - да благодарит упомянуть это. Спасибо за ту ссылку, никогда не видел что это прежде, хороший материал. –  slm♦ 04.08.2013, 16:27
  • 3
    Честный вопрос: не Был бы это быть лучше проверить на разрешение выполнения с -x? –  rahmu 04.08.2013, 16:29
  • 4
    @rahmu - всегда хороший для задавания вопросов. Да это может быть сделано тот путь также. Проблема с тем методом - это, не является столь же портативным, так как у Вас будет к hardcode путь исполняемым файлом. [ -x /usr/bin/tmux ]. ре –  slm♦ 04.08.2013, 16:40
  • 5
    [ -x $(which tmux) ]? Единственная проблема, которую я нашел с этим, является этим which ведет себя по-другому на zsh если работал против псевдонима. –  rahmu 04.08.2013, 16:54

Или, если все, что Вы хотите сделать, выбирают, какой исполняемый файл исчерпать, можно сделать это:

executable=$(type -P tmux)
executable=${executable:-xterm} # For example
exec $executable

Расширение var=${var:-string} присваивает значению "строку" var если и только если ничему не присвоили var прежде.

1
27.01.2020, 21:13

Теги

Похожие вопросы