У меня есть много скриптов, написанных на Solaris
, который использует shebangs как эти:OS на основе притон
/usr/bin/sh
/usr/bin/ksh
Я портирования кода на Linux, который имеет переводчиков, помещенные в /bin
.
Есть ли способ изменить притон так, что сценарии работают в обоих Solaris
и Linux
Я надеюсь, что мы не можем сделать проверку ОСОВ для притона, как показано ниже:
if [ $os == "Linux" ]
then
#!/bin/sh
else
#!/usr/bin/sh
fi
Является ли это нормально добавлять ссылки в Linux, как показано ниже:
/usr/bin/sh --> /bin/sh
Это один из мотивирующих факторов, стоящих за 'env' - вы могли бы заменить свою« взломать »на # #/usr/bin/env ksh, например , Но у этого есть свои собственные подводные камни, так что вам, возможно, потребуется немного изучить это. – twalberg
Основная проблема, которую даже «env» помещает в '/ usr/bin' и'/bin' в Solaris и Linux, соответственно не дает этой идеи. – cppcoder