最近在编写一个 shell 脚本,用到了 md5 生成一个字符串的 hash,我本打算使用 <<<
让语法精简。
# 原写法
$ echo -n "abc123" | md5
# <<< 操作符写法
$ md5 <<< "abc123"
看上去没什么问题,但是两条命令的结果完全不一样,最后实验发现, <<<
操作符在 zsh 下会追加一个换行符,也就是该写法应该等价于 echo -n "abc123\n" | md5
或者 echo "abc123" | md5
。
最近在编写一个 shell 脚本,用到了 md5 生成一个字符串的 hash,我本打算使用 <<<
让语法精简。
# 原写法
$ echo -n "abc123" | md5
# <<< 操作符写法
$ md5 <<< "abc123"
看上去没什么问题,但是两条命令的结果完全不一样,最后实验发现, <<<
操作符在 zsh 下会追加一个换行符,也就是该写法应该等价于 echo -n "abc123\n" | md5
或者 echo "abc123" | md5
。
ZSH 在Linux下有时候尾部还会多出一个% 坑了我几次(╯‵□′)╯︵┴─┴