Нужно ли определить оболочку в файле, который включает только функции?

Если вы имеете в виду, проверьте, что каждая строка является десятичным целым числом, равным единице плюс десятичное целое число в предыдущей строке, тогда:

awk 'NR == 1 {n = $0; next}
     $0 != n+1 {status = 1; exit}
     {n = $0}
     END {exit status}'

Замените $ 0! = N + 1 на $ 0 , чтобы проверить строгое увеличение на любое значение, а не только на одно. Однако в этом случае вы, вероятно, предпочтете подход sort -c , если вы не хотите, чтобы он прекращал чтение при первом нарушении, или если вы хотите поддерживать числовые форматы (шестнадцатеричные числа, нотация с плавающей запятой. ..) не поддерживается сортировкой (например, когда ваша сортировка не поддерживает -g )

1
13.12.2018, 12:47
2 ответа

Если вы sourceиспользуете только файл из другого скрипта, хэш-банг не интерпретируется (это просто комментарий ). Однако это может работать как комментарий для читателя, чтобы напомнить ему, что сценарий использует функции, специфичные для конкретной оболочки. Конечно, вы должны упомянуть об этом и в комментариях в виде обычного текста, так как у вас все равно есть описание вашего скрипта в комментарии вверху файла, верно?

1
27.01.2020, 23:15

Нет, вам не нужна строка shebang :работающая оболочка получает сценарий напрямую, она не запускает новую оболочку (, в которой весь смысл поиска сценария ), так что ни ни ему, ни ядру не нужно знать, какую оболочку использовать для его запуска.

Если вы хотите вообще запретить запуск скрипта second.sh, вы можете добавить скрипт

#!/usr/bin/false

линия шебанга.

4
27.01.2020, 23:15

Теги

Похожие вопросы