использование псевдонимов в функции?

[[ -t 0 ]]просто определяет, открыт ли fd0 на (псевдо-)терминале. Поскольку fd0 является стандартным вводом, обычно это так.

0
22.10.2019, 12:31
3 ответа

Потому что в скриптах нельзя использовать псевдонимы. Псевдонимы "конвертируются" только при вводе на терминале (, иначе написание скриптов будет затруднено, потому что вы не знаете, как lsили rmотреагируют, например ).

2
28.01.2020, 02:14

Я считаю, что переменные — это aliasскриптов.

Вы всегда можете сделать следующее, [Но не рекомендуется]

[arif@arif ~]$ yumi='yum install -y'

[arif@arif ~]$ $yumi tmux

Error: This command has to be run under the root user.

Почему этот метод не рекомендуется и как следовать, обсуждается по этой ссылке.

1
28.01.2020, 02:14

Вы также можете использовать функцию для yumy:

#!/bin/bash
yumy() {
    yum install -y "$@"
}
yumprovision() {
    yumy
}

"$@"расширяется до аргументов этой функции, поэтому yumy foo barработает так же, как yum install -y foo bar.

Bash по умолчанию не расширяет псевдонимы в неинтерактивных оболочках, но вы можете изменить это с помощью shopt expand_aliases, если вы действительно хотите, см. The Shopt Builtin в руководстве . Но причин для этого мало, функции во многих отношениях лучше.

3
28.01.2020, 02:14

Теги

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