请考虑这个名为test的简单脚本:
#!/bin/bash
echo $1
以及以下命令和调用:
$ echo "A B"
A B
$ echo ""A B""
A B
$ echo """A B"""
A B
$ echo """A B"""
A B
$ ./test "A B"
A B
$ ./test ""A B""
A
$ ./test """A B"""
A B
$ ./test """"A B""""
A
有人可以解释一下为什么测试调用不会像命令echo那样运行或指向相关文档吗?
2
已经有一个测试命令,很幸运,您使用的是完整路径,否则您将很难调试情况。
—
Rui F Ribeiro 2015年
对于这种测试,更好的方法是使用
—
查尔斯·达菲
printf '%q\n' "$@"
而不是根本不使用echo
它,它会逐行发出带有隐藏字符和空白以可见形式转义的空白的参数。