Bash «-e» головоломка

Я пытаюсь создать командную строку, основанную на передаче флага «-e» и другой переменной в другой базовый сценарий, вызываемый как подпрограмма, и запустил в странную проблему; Я теряю часть строки «-e», когда передаю ее в подпрограмму. Я создаю пару примеров, которые иллюстрируют проблему, может помочь?

Это работает, как и следовало ожидать:

$echo "-e  $HOSTNAME"

-e  ops-wfm

Это НЕ; мы теряем «-e», потому что он интерпретируется как специальный квалификатор.

$myFlag="-e $HOSTNAME"; echo $myFlag

ops-wfm

Добавление символа экранирования «\» тоже не работает, я получаю правильную строку с символом «\» впереди:

$myFlag="\-e $HOSTNAME"; echo $myFlag

\-e ops-wfm

Как я могу предотвратить проглатывание -e ?

5
задан Johnsyweb 12 November 2011 в 01:11
поделиться