最近在编写一个 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下有时候尾部还会多出一个% 坑了我几次(╯‵□′)╯︵┴─┴