我有几个 bash 脚本可以读取任意字符串(通常来自标准输入)。当这些字符串包含 bash 识别的内容时,事情就会中断。
例如,我有一个简单的日志记录脚本(名为 al),其主要功能是获取输入字符串并将其写入前面带有时间戳的文件。
如果我给它像
al that didn't work
或者
al I tried a & B
它中断是因为 bash 看到引号或与号(或其他元字符)并尝试在它到达我的脚本之前对其进行处理。
在我将字符串传递给脚本的其余部分之前,我想有一种方法来接受字符串并通过过滤器运行它以摆脱或添加转义符(“\”)到所有可能导致问题的字符。
我写了一个小 C 程序来做这件事——让它读取原始输入,所以 bash 永远不会看到它。它有效,但我真的不想重新发明轮子。
我知道我可以手动输入字符串并转义字符,但我通常会忘记这样做,有时它们会在以后被剥离。
al I tried a \& b
al It didn\'t work
是否有一些实用程序或方法可以做到这一点而无需从头开始编写?