bash - 没有 shebang = sha256sum 或其他 shasum = 错误的 shell 脚本
问题描述
我需要做一些 sha256sum (或者 shasum -a 256 如果 sha256sum 不是通过自制软件安装的)。
但是我有一个大问题,因为如果我没有 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 配置文件)是否有错误,或者我需要一个特殊的环境吗?
我的实际版本:每个版本都可以重现问题
从自制:
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)
问候
解决方案
@GordonDavisson 的解决方案通过替换为 like 可以按预期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
现在,我需要更新我的脚本以获得正确的 shebang 和/或使用 printf。谢谢
推荐阅读
- html - 使用材质 ui svg 图标作为背景图片
- java - 如何在 InDesign Java 文档中获得真实的页数
- matlab - 如何将二进制函数应用于元胞数组和双精度数组
- go - Golang - 如何从代码内部显示模块版本
- c++ - 在 Windows 上打开的 C++ 文件总是失败
- binding - 我可以在我的 CollectionView 中使用填充视图的 ItemsSource 列表之外的值填充标签吗?
- javascript - Flask:javascript读取时python对象到json触发错误
- javascript - SELECT WITH CAST OR CONVERT IN iLike 使用 SEQUELIZE
- javascript - JavaScript 解释器如何知道遇到的函数调用应该同步处理还是异步处理?
- node.js - 如何从nodejs中的http请求保存缓存状态?