Сделать эхо игнорировать пробелы?

У меня есть файл под названием temp1

sCellEventTrap-03-27 TRAP-TYPE -- CAC Code: 01 ENTERPRISE compaq VARIABLES { scellNameDateTime, scellSWComponent, scellECode, scellCAC, scellEIP} DESCRIPTION "Severity: Critical -- failure or failure imminent. A physical disk drive has experienced an ID block inconsistency." --#TYPE "StorageCell Event" --#SUMMARY "SCellName-TimeDate %s : SWCID %d : ECode: %d : CAC %d : EIP %d." --#ARGUMENTS {0,1,2,3,4,} --#SEVERITY CRITICAL --#TIMEINDEX 136 --#STATE WARNING ::= 13600807

Применение этого к temp1

prvar = $ (awk '/ VARIABLES /, / ОПИСАНИЕ / {gsub ("ПЕРЕМЕННЫЕ", ""); gsub ("ОПИСАНИЕ", ""); gsub ("}", ""); gsub ("{", ""); gsub (",", ""); print; print ":% s "} 'temp1)

Дает мне (что я хочу)

echo $prvar scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%s

Однако это (формат не нужен)

echo "$prvar" scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%s

Я использовать prvar в echo вместе с текстом, подобным этому

prvar = $ (awk '/ VARIABLES /, / ОПИСАНИЕ / {gsub ("VARIABLES", ""); gsub ( "ОПИСАНИЕ", ""); gsub ("}", ""); gsub ("{", ""); gsub (",", ""); print; print ":% s"} 'temp1)

echo "blah blah blah $ prvar"

blah blah blah scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%s

Выполнение этого, что я получаю

blah blah blah scellNameDateTime :%s scellSWComponent :%s scellECode :%s scellCAC :%s scellEIP :%s :%s

Что я хочу, чтобы он печатал

"" на prvar при использовании echo создает проблему. Что я могу сделать, чтобы prvar был напечатан в формате, который был выше?

1
задан 28 June 2015 в 10:43

1 ответ

Вам не нужно цитировать («) все в эхо. У вас может быть много строк. Просто не цитируйте prvar:

echo "blah blah blah" $prvar

В оболочке (которая расширяет $ prvar для вас до эха даже видит это), пробелы внутри кавычек (") сохраняются, но пробелы и табуляции вне кавычек сводятся к одному пространству. например

echo "a        b"        d            e
a        b d e
0
ответ дан 23 May 2018 в 19:25
  • 1
    Что, если бы это было так "blah blah blah $prvar blah blah blah"? то что я могу сделать? – SamFlynn 28 June 2015 в 10:30
  • 2
    @SamFlynn: echo "blah blah blah" $prvar "blah blah blah" – Cyrus 28 June 2015 в 10:36
  • 3
    Ну получается, что не имеет значения, что я набираю в своем скрипте echo "$prvar" и echo $prvar печатать то же самое - формат, который я не хочу. Терминал и сценарий ведут себя по-другому для любой работы? – SamFlynn 28 June 2015 в 10:38

Другие вопросы по тегам:

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