我想将 shell 变量的内容原封不动地写入管道。“echo -n”也很好。
每个人都说“使用 printf”,类似
echo() {
case "$1" in
-n) shift; printf '%s' "$*" ;;
*) printf '%s\n' "$*" ;;
esac
}
但由于 printf 是外部命令,因此它可以作为参数的字符数是有限的,通常为 131072 或 65536,也可能更少,具体取决于操作系统。我正在处理 json 问题列表,长度可能高达数百 K,并且它必须在任何地方都能正常工作。
您不能使用“echo -e”,因为 dash 的内置 echo 总是映射反斜杠序列。
在基本 shell 中必须有一种方法,无需使用外部程序,即可将变量的内容写入管道或文件。
没有嗎?