env - самый простой способ решить эту проблему:
#!/usr/bin/env -S awk -f
, чтобы добавить больше опций и не допустить вмешательства в ваши аргументы и аргументы awk:
#!/usr/bin/env -S awk -F: -f ${_} --
BEGIN {
# delete argv[1], which == ENVIRON[_]
delete ARGV[1]
} # rest of my awk program
, поскольку env имеет стандарт POSIX, этот shbang поможет вам преодолеть трудности нестандартных реализаций shbang в unixen.
EDIT
после написания этого я понял, что '-S' не является POSIX-совместимым расширением env . Так что оболочка оболочки - это, вероятно, верный путь, как это ни прискорбно.