1
shell命令cmd可能包含空格以及單引號和雙引號。如何在命令參數中將引號轉義爲sh -c?
如何逃避這些引號命令正確地傳遞給了POSIX shell:
>dash -c '
CMD '
另一個問題指出作爲DUP,詢問雙引號。其中一個答案可能會起作用 - 拆分命令並使用連接的引號。例如,如果CMD是
cd "dir"; ls 'foobar'
那麼我們就變換成
>dash -c 'cd "dir"; ls '"'foobar'"
這是凌亂...有沒有更簡單的方法?
添加:它似乎沒有人理解我...我只是想要一個通用的過程,一個算法,接受輸入,一個字符串(完全精確的,由可打印的ASCII字符從0到127 ASCII表),並輸出第二個字符串。要求是,如果第一個字符串這樣
POSIX_shell>string1
執行的結果是一樣的
>POSIX_shell -c string2
難道我更清楚現在,請讓我知道。
的評論:「如果有可能避免這種」讓我想起了經典笑話來逃脫「客戶電話支持工程師和說,當我這樣做時,我遇到了一個錯誤,支持工程師說,不要那麼做!「 –
我不明白你的答案。你確定你明白我的問題嗎? –
你可以在單引號內回顯'''',除了它是一個fib - 最終結果是單引號,但在''''中,第一個單引號終止單引號字符串,'\''嵌入單引號,最後'''恢復單引號字符串。 –