我可以将命令后输入的所有内容视为原始字符串吗?

我可以将命令后输入的所有内容视为原始字符串吗?

我为自己创建了一个 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

相关内容