Я не знаю контекст, но, возможно, вы можете просто удалить исполняемое разрешение из скрипта в конце:
chmod a-x $0
Затем, пока вы снова не chmod a+x <scriptname>
, вы не сможетевыполнить его.Вы получите «Отказано в доступе».
Примечание после комментария:
В этом случае вы можете разделить скрипт на Always.sh и firstonly.sh.Используйте chmod a-x $0
в firstonly.sh и в always.sh do:
[ -x firstonly.sh ] && ./firstonly.sh
В качестве альтернативы, вы можете использовать какой-либо флаговый файл, как предложено в других ответах.