Bash

我可以將我在命令後輸入的所有內容都視為原始字元串嗎?

  • February 4, 2015

我為自己做了一個 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

引用自:https://unix.stackexchange.com/questions/182844