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

    pwd='UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ'
    for i in `seq -f "%04g" 0 9999`;
    do
         str=`echo $pwd ' ' $i`
         echo $str
    done | nc localhost 30002
-4
24.06.2018, 05:06
1 ответ

Псевдонимы намеренно очищаются перед запуском скрипта, так как псевдонимы могут привести к некорректной работе скриптов.

Теоретически вы можете определить псевдонимы внутри скрипта, но если такой скрипт запускается через

. scriptname

не разрешено использование этих новых псевдонимов внутри скрипта,поскольку точечные сценарии полностью анализируются перед запуском, и чтобы сделать псевдоним эффективным, синтаксический анализатор должен знать его, а для того, чтобы позволить синтаксическому анализатору узнать псевдоним, вам сначала нужно запустить встроенную команду оболочки alias.

Так что просто не используйте псевдонимы в скриптах. Они предназначены для облегчения набора текста, и это не относится к сценариям, которые пишутся один раз, но запускаются много раз.

0
28.01.2020, 05:20

Теги

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