我需要做一些sha256sum(如果未通过自制程序安装sha256sum,则为shasum -a 256)。
但是我有一个大问题,因为如果我没有shebang并且不为脚本加上bash或zsh解释器前缀,那么输出效果就不好。
sha256sum脚本:
echo -n 'toto@xyz.tld' | sha256sum
echo -n 'rehiohroie479236893264932fheoi' | sha256sum
echo -n '479823498326598230hgfiejdbgojeklnsfesahofwyr89379832' | sha256sum
echo -n 'w10+_+___!foiefioeoewo' | sha256sum
echo -n '[423].4324234234?5723854' | sha256sum
脚本shasum -a 256(如果没有可用的sha256sum:
echo -n 'toto@xyz.tld' | shasum -a 256
echo -n 'rehiohroie479236893264932fheoi' | shasum -a 256
echo -n '479823498326598230hgfiejdbgojeklnsfesahofwyr89379832' | shasum -a 256
echo -n 'w10+_+___!foiefioeoewo' | shasum -a 256
echo -n '[423].4324234234?5723854' | shasum -a 256
没有解释器前缀的输出(不好):./test.sh
6cb303b5912a48ac7b9629b7e6b0d0f019f90e3431fbec5e938b3ee51d73c396 -
bfa1f20ad0995f80699b17d2801f6851ae04a84beb0fb0f767970a49d0408157 -
22b1d65df960fe03a33db01529ab417f4936dcd9c2b95f9a010ffb4f1d82a2a5 -
d99e836ce741c053137d72eccbe8c6a96f9f6fa695b14e383673bf3b9872419a -
c9bdf1c7556abe6763171d9a6a7f407cfbb355f7237bc81a9900f54e0d4f3e37 -
带有解释器前缀(好的)的输出:bash test.sh
e908b502b471063233985fa655eab4173178a466079a7e12a93bbfca3ef64d63 -
8d794d4d4f130fced60e52bf83f1fdfb67f8a852bc38f964672cdf62e64b2628 -
5a1efde32fe2ca5b7523c02cef944cb88b98dde8143f9ad7ad07f587502b8566 -
ce4a893b9372d74a78e74f0850308fb5d6b8a9cdba8c230e0ecfe2dbb38f72f7 -
2584ddef1f4b2900c3d1659c59a7cd107523318c686cd64eb1dd5cd8deff0e8b -
如果我直接执行每行脚本,这是很好的输出。
您能告诉我我的设置(zsh配置文件)有错误还是我需要特殊的env吗?
我的实际版本:每个版本均可重现问题
来自自制软件:
zsh 5.7.1 (x86_64-apple-darwin18.2.0)
GNU bash, version 5.0.7(1)-release (x86_64-apple-darwin18.5.0)
苹果官方(macOS Mojave):
zsh 5.3 (x86_64-apple-darwin18.0)
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
致谢
答案 0 :(得分:0)
@GordonDavisson的解决方案按预期工作,方法是像这样将echo -n
改成printf '%s'
:
printf '%s' 'toto@xyz.tld' | shasum -a 256
printf '%s' 'rehiohroie479236893264932fheoi' | shasum -a 256
printf '%s' '479823498326598230hgfiejdbgojeklnsfesahofwyr89379832' | shasum -a 256
printf '%s' 'w10+_+___!foiefioeoewo' | shasum -a 256
printf '%s' '[423].4324234234?5723854' | shasum -a 256
现在,我需要更新脚本以使其具有正确的显示效果和/或使用printf。 谢谢