我有一个脚本,实际上是在另一台机器上的同名可执行文件的包装器。为了举例,这里我将包装printf。我的当前脚本如下:
#!/bin/bash
ssh user@hostname.tld. printf "$@"
不幸的是,当其中一个参数包含空格时,会出现问题。例如,我期望以下命令会给出相同的输出:
~$ ./wrap_printf "%s_%s" "hello world" "1"
hello_world1_
~$ printf "%s_%s" "hello world" "1"
hello world_1
这个问题在涉及(转义)换行符时变得更加严重。我应该如何正确转义我的参数呢?