У меня есть тест, который должен работать на нескольких платформах.  На всех других платформах в тесте используется sha1sum , но на моем Mac OSX El Capitan такая программа не установлена, но shasum отлично работает в качестве замены.
Я пытался создать ссылку из /usr/bin/sha1sum на /usr/bin/shasum , но это не удалось , даже с правами root:
bash-3.2$ cd /usr/bin
bash-3.2$ sudo ln shasum sha1sum
ln: sha1sum: Operation not permitted
Затем я помещаю его в /usr/local/bin:
bash-3.2$ cd /usr/local/bin
bash-3.2$ ln -s /usr/bin/shasum sha1sum
И это похоже на работу:
bash-3.2$ sha1sum -c files.sha1sum
smallData.txt: OK
Но мой тестовый жгут, теперь находящий sha1sum, все еще не работает:
perl version 5.18.2 can't run /usr/local/bin/sha1sum.  Try the alternative(s):
(Error: no alternatives found)
Run "man perl" for more information about multiple version support in
Mac OS X.
Я также попытался использовать alias sha1sum=shasum но проводка не работает с:
sh: line 1: sha1sum: command not found
Я обнаружил, что моя подвеска выходит из строя, потому что она использует sh вместо bash .
sh-3.2$ sha1sum -c files.sha1sum
perl version 5.18.2 can't run /usr/local/bin/sha1sum.  Try the alternative(s):
(Error: no alternatives found)
Run "man perl" for more information about multiple version support in
Mac OS X.
sh-3.2$ shasum -c files.sha1sum
smallData.txt: OK
Так почему же sha1sum не запускается под sh но shasum работает, а sha1sum работает под bash и как мне заставить sha1sum работать под sh?
Я также не понимаю, почему это не удается:
bash-3.2$ echo "sha1sum -c files.sha1sum" | bash
perl version 5.18.2 can't run /usr/local/bin/sha1sum.  Try the alternative(s):
(Error: no alternatives found)
Run "man perl" for more information about multiple version support in
Mac OS X.
Теперь я замечаю этот комментарий в файле /usr/bin/shasum :
The contents of this script should normally never run!  The perl wrapper
should pick the correct script in /usr/bin by appending the appropriate version.
You can try appending the appropriate perl version number.  See perlmacosx.pod
for more information about multiple version support in Mac OS X.
 