2015-12-23 9 views
2

Problems with single quotes in a bash scriptкотировки в Баш при представлении г CMD пакетных команд

Я видел этот пост, но моя проблема является более сложным и просто заменить одиночные кавычки двойные кавычки не будут работать. Мне нужно выполнить команду ПАРТИИ R CMD с одиночными и двойными кавычками в одинарных кавычках, что-то вроде этого

echo 'R CMD BATCH --no-save '--args "xxx.txt"' xxx.r' | qsub -cwd & 

Что я должен делать?

+0

На самом деле я получил лучшее решение, поскольку эхо имеет встроенный параметр -e, благодаря которому могут использоваться экранированные символы. 'echo -e '\ x22 \ x27something \ x27 \ x22'' – gipelttil

ответ

2

Я использую то, что я называю 5 цитат шаблон для этого:

'this '"'"' that' 

=>this ' that

"this "'"'" that" 

=>this " that

+0

Это несколько уродливо, но он всегда работает. Используя ключевое слово AZERTY, я стараюсь не использовать обратную косую черту, которая является наручным выключателем :) – cadrian

+0

спасибо большое! Используя шаблон 5 кавычек, я успешно разбомбил кластер с 1000 заданиями! – gipelttil

+0

приветствуется :) хотя я нахожу ответ @ chepner более элегантным. – cadrian

4

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

qsub -cwd <<'EOF' & 
R CMD BATCH --no-save '--args "xxx.txt"' xxx.r 
EOF 
+0

Спасибо, он тоже должен работать, но я предпочитаю однострочные. – gipelttil

 Смежные вопросы

  • Нет связанных вопросов^_^