Двойные кавычки в 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 

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 также не показывает амперсанд в конце команды.)

  • bash выполнить команду чтения из файла
  • Есть ли причина, чтобы указать статус выхода $? переменная?
  • Как предотвратить перемещение символов в переменной среды?
  • Какие символы должны быть экранированы в аргументах командной строки?
  • sed - не добавляет новую строку EOF и заменяет букву не определенной
  • Проблема использования пользовательской переменной в скрипте
  • -bash:! '@ 10.109.10.142/?ip=10.109.8.39: событие не найдено
  • Подстановка переменных grep и командной строки
  • Параметр игнорируется при цитировании
  • почему grep '\ ;.' expand to grep '\' '\;.' \ '' 'при выполнении над ssh?
  • Почему исходный текст не работает, когда я вызываю bash -c
  • Как вы взаимодействуете с файлом с именем «!!»?
  • Interesting Posts

    Изменение механизма исходящего сообщения syslog с использованием конфигурации rsyslog

    SSH passwordless root login получает «Permission denied (publickey)».

    Мониторинг создания новых процессов

    wc -L сообщает длину строки 8 для tab-char. ошибка или функция?

    Как добавить данные в переменную с помощью \ n в качестве разделителя?

    Как просмотреть сертификат WPA2 PEAP, предлагаемый AP?

    NodeJS – ошибка npm undefined символ uv_fs_realpath

    Как включить все установленные среды рабочего стола в Fedora 23?

    Удалить трейлинг ~ из файлов

    Судьба домашней папки после перераспределения на другой раздел

    Почему это регулярное выражение находит соответствие для \ x63 с шаблоном

    Почему Fail2ban не отправляет почту для одной конкретной тюрьмы?

    Команда для перехода на новое ядро ​​из репозиториев Ubuntu

    Сценарий оболочки не запускается при запуске

    / etc / fstab устанавливает rw файловую систему как доступную только для чтения

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