我为自己创建了一个 bash 函数,这样我就可以将一些单词放入 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 误解并需要更多输入。
那么,有没有一种方法可以让我在命令后面输入任何内容作为原始字符串?或者我应该如何改进我的功能以便解决特殊的"
, , ` 问题?'
答案1
你想要的东西是不可能的。您不喜欢 shell 行为,但这部分 shell 行为无法更改。
我想这对你来说会更好:
function th { { echo; cat; } >> /Users/zen1/zen/pythonstudy/tree_hole; }
您的函数将在没有参数的情况下被调用。cat
将从标准输入读取并附加到文件。您可以输入终端允许您输入的所有内容(即"
,'
、 、换行符等没有问题)。您可以用Ctrl-结束输入D。