3

我有以下脚本:

#!/bin/sh

echo "111\n111"
echo -e "222\n222"

这两个命令在 bash 和 dash 中都不起作用:

$ /bin/dash test.sh 
111
111
-e 222
222
$ /bin/bash test.sh 
111\n111
222
222

因为我无法确定 /bin/sh 是指向 bash 还是 dash,也无法确定 /bin/bash 或 /bin/dash 是否存在,所以这是一个真正的问题。我也不能拆分字符串并为换行添加一个“echo”,因为我需要将带有换行符的字符串通过管道传输到命令中。

有什么方法可以打印一个在所有 shell 中都有效的换行符字符串?

4

1 回答 1

2

printf应该更可靠:

$ printf "111\n111\n"
111
111

这应该在两个 shell 中以相同的方式工作。希望所有的贝壳。

于 2013-11-24T09:09:43.937 回答