1 2 3 4 5 6 7 8 |
function Usage() { cat <<eof Usage: --help: show this help eof } |
注意,这个脚本里面的cat,这里很容易写作echo的,因为php中就是用的echo; 我们很容易将这种语法视为写复杂字符串的一种方法,而在shell中,这不是一个复杂的字符串,而是把这些内容作为命令的标准输入提供给命令的,而不是命令的参数:
1 2 3 4 5 6 7 8 9 10 |
# strace -e read,write cat <<eof aaa eof read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\34\2\0\0\0\0\0"..., 832) = 832 read(0, "aaa\n", 65536) = 4 write(1, "aaa\n", 4aaa ) = 4 read(0, "", 65536) = 0 +++ exited with 0 +++ |
知道了原理之后,就再也不用担心写错了