почему grep '\ ;.' expand to grep '\' '\;.' \ '' 'при выполнении над ssh?

$cat test.sh ssh HOST -l root -o StrictHostKeyChecking=no -q "/bin/bash -l -c /bin/env | grep -w PATH | grep '\;.'" $bash -x test.sh + ssh HOST -l root -o StrictHostKeyChecking=no -q '/bin/bash -l -c /bin/env | grep -w PATH | grep '\''\;.'\''' 

  • Почему переменная передается команде su, но не массив из той же области?
  • Есть ли причина, чтобы указать статус выхода $? переменная?
  • Почему мы дважды цитируем оценку знака доллара в Bash?
  • bash: невозможно установить переменную в сплошную строку
  • while: команда не найдена
  • Как анализировать переменную env в цитируемой строке?
  • Escaping * с регулярными выражениями и Grep
  • Есть ли способ получить * фактические * (неинтерпретированные) аргументы оболочки в функции или скрипте?
  • One Solution collect form web for “почему grep '\ ;.' expand to grep '\' '\;.' \ '' 'при выполнении над ssh?”

    Это не связано с SSH. Аргумент -x для bash – это команда set bash, которая отображает аргументы команды в расширенной форме. Вот почему строки с двойными кавычками отображаются как одинарные кавычки.

     $ cat test.sh echo "here are 'some single quotes' inside double quotes" $ bash -x test.sh + echo 'here are '\''some single quotes'\'' inside double quotes' here are 'some single quotes' inside double quotes 
    Linux и Unix - лучшая ОС в мире.