Смешивание одинарных и двойных цитат в Bash - PullRequest
0 голосов
/ 29 мая 2009

Хорошо, у меня есть скрипт, который принимает несколько аргументов, запускает данные, а затем rsyncs данные на другой сервер. Проблема в том, что для запуска данных мне нужно взять один из аргументов, а затем запустить отчет, используя его, что очень недружелюбно (например, [3023.2 <> 1], [5111.3 $] = "5" и т. Д.). ).

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

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

arg1 = [5111.3$]="5"

runjob specfile.spx '$arg1'

Это не сработает, но если бы я запускал его с двойными кавычками, то есть большая вероятность, что передаваемый аргумент будет иметь двойные кавычки. Есть идеи как обойти это?

Ответы [ 2 ]

2 голосов
/ 29 мая 2009

Используйте одинарные кавычки вокруг значения при его установке, затем используйте двойные кавычки вокруг переменной при ее расширении:

$ arg1='[5111.3$]="5"'
$ echo "$arg1"
[5111.3$]="5"
0 голосов
/ 29 мая 2009

Цитата ускользает. Попробуйте

[5111.3$]=\"5\"

Расширенное руководство по написанию сценариев содержит хороший раздел , цитирующий .

...