Сценарий оболочки без shebang = sha256sum или другого shasum = ошибка - PullRequest
0 голосов
/ 07 июня 2019

Мне нужно сделать некоторую сумму sha256 (или shasum -a 256, если sha256sum не установлена ​​через homebrew).

Но у меня большая проблема, потому что, если у меня нет 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?

Мои актуальные версии: воспроизводимые проблемы с каждой версией

  • От Homebrew:

    zsh 5.7.1 (x86_64-apple-darwin18.2.0)
    GNU bash, version 5.0.7(1)-release (x86_64-apple-darwin18.5.0)
    
  • Официальный Apple (macOS Mojave):

    zsh 5.3 (x86_64-apple-darwin18.0)
    GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
    

Привет

1 Ответ

0 голосов
/ 07 июня 2019

Решение от @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

Теперь мне нужно обновить мои сценарии, чтобы иметь правильный shebang и / или использовать printf,Спасибо тебе

...