Двойные кавычки в bash

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

Взгляните на содержимое моего файла.

#!/bin/bash echo ./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config & ./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config & 

Часть эха печатает именно ту команду, в которой я нуждаюсь, но когда я приступаю к ее выполнению (следующая строка), я использую ее.

Как я могу исправить это?

Благодаря!

Вот как мне нужно это назвать:

 ./yowsup/yowsup-cli demos --s 9999999999 "my parameter" -c yowsup/config 

Результат эха:

 ./yowsup/yowsup-cli demos --s 9999999999 "my parameter" -c yowsup/config 

Результат вызова:

 demos: error: unrecognized arguments: parameter 

Копирование и вставка результатов эха:

 INFO:yowsup.demos.sendclient.layer:Message sent 

  • Как назначить имена файлов пробелу другой переменной без потери разделителя
  • Как использовать переменные в команде sed
  • bash: невозможно установить переменную в сплошную строку
  • Как анализировать переменную env в цитируемой строке?
  • Долларовая интерполяция знаков внутри кавычек в bash
  • Есть ли способ получить * фактические * (неинтерпретированные) аргументы оболочки в функции или скрипте?
  • Есть ли причина, чтобы указать статус выхода $? переменная?
  • Как я могу поддерживать разрывы строк в тексте тела с mailx при отправке вложений?
  • 2 Solutions collect form web for “Двойные кавычки в bash”

    Вам нужно избежать кавычек в команде echo чтобы увидеть их на выходе, но вы не должны избегать их в действительной команде:

     #!/bin/bash echo ./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config & ./yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config & 

    Кавычки используются в фактической команде, чтобы предотвратить разделение $2 – которое содержит несколько слов.

    Я (почти) всегда цитирую все, чтобы «эхо», поэтому я бы сделал следующее:

     #!/bin/bash echo "./yowsup/yowsup-cli demos --s $1 \"$2\" -c yowsup/config &" ./yowsup/yowsup-cli demos --s $1 "$2" -c yowsup/config & 

    Разница с решением @muru заключается в том, что исходная команда echo запускается «в фоновом режиме» – здесь она вторит экрану на переднем плане, но запускается в качестве фоновой команды. (@ muru также не показывает амперсанд в конце команды.)

    Interesting Posts

    Autotools неправильно определяет мою архитектуру. Как обращаться?

    Является ли GRUB лучшим решением для загрузки? Есть ли более простая альтернатива?

    Команда nc не найдена на SuSE

    В команде не работает

    Как протестировать исправление файловой системы, выполненную fsck

    Получение патчей из списка рассылки с mutt и vim

    SELinux: Как вы предоставляете доступ к нескольким процессам в каталог / mnt / foo?

    "~ /" Получает ошибку отказа в разрешении в Csh

    Уникальный идентификатор жесткого диска

    Как запустить tnftpd без root на OS X?

    Карта xbindkeys Левая + Правая кнопка мыши на средний щелчок мыши

    Как отслеживать входящие HTTP-запросы

    Запуск Apache с Tomcat

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

    Как настроить w3m на использование прокси-сервера squid (или любого прокси-сервера) по умолчанию при вызове конкретного пользователя?

    Linux и Unix - лучшая ОС в мире.