在 shell 中将换行符作为参数传递

Nou*_*jik 2 bash newline

该程序将单个字符作为参数。

./myprog <character>
Run Code Online (Sandbox Code Playgroud)

我如何将 shell 中的\n传递给 myprog ?

Ama*_*dan 8

最简单但不是很漂亮:

./myprog "
"
Run Code Online (Sandbox Code Playgroud)

编辑:仍然最简单,但我忘记了:

./myprog $'\n'
Run Code Online (Sandbox Code Playgroud)

另一种选择:

./myprog ^M                  # not ^ and M, but the literal LF character
                             # in `bash`, obtained by Ctrl-V, Enter
Run Code Online (Sandbox Code Playgroud)

或者,您可以执行这些程序所做的操作,然后自己解析参数。如果您说./myprog "\n",您的代码将接收两个字符的字符串\n作为其第一个参数 - 查找这样的序列并将其转换为换行符(例如,通过传递参数printf或您语言中的等效项,或通过正则表达式替换... )。