Bash
我可以將我在命令後輸入的所有內容都視為原始字元串嗎?
我為自己做了一個 bash func,這樣我就可以通過一些單詞進入一個 tree_hole 文件,它在 bashrc 中看起來像這樣:
function th { echo -e "\n$@" >> /Users/zen1/zen/pythonstudy/tree_hole; } export -f th
因此,我可以
th Tom, I like your new laptop
將整個“Tom …”語句放到 tree_hole 文件的末尾。但有一個問題。該函式似乎沒有將變數的所有部分轉換為原始字元串。所以
th "hi, Tom"
會得到hi Tom
而不是預期"hi, Tom"
的,"
缺少的。此外,我不能輸入單個'
or"
或 `,這會被 bash 誤解並需要更多輸入。那麼,有沒有一種方法可以讓我在命令之後輸入任何內容作為原始字元串?或者我應該如何改進我的功能以便可以解決特殊的
"
, ,問題?
'`
你想要的是不可能的。您不喜歡 shell 行為,但是這部分 shell 行為無法更改。
我想這對你會更好:
function th { { echo; cat; } >> /Users/zen1/zen/pythonstudy/tree_hole; }
您的函式將在沒有參數的情況下被呼叫。
cat
將從標準輸入中讀取並附加到文件中。您可以輸入終端允許您輸入的所有內容(即,使用"
,'
, 換行符等沒有問題)。Ctrl
您將使用-結束輸入D
。