Это действительная линия шебанга?

Это действительная линия шебанга?

У меня есть следующий вопрос по UNIX:

Что еще нужно, когда верхняя строка идет вниз

#!\bin\awk -f
  to make it run as a command?

Я думаю, что как бы ни назывался скрипт, для его запуска ему нужно дать разрешение с помощью chmod.

решение1

Первая строка с «#!» будет полным путем к программе, которую необходимо выполнить.

Пути в Linux содержат косую черту между каталогами.

то есть:

#!/bin/awk -f

или

#!/bin/bash

или

#!/usr/bin/perl

Первый скрипт будет запускать программу-скрипт с помощью awk, второй — с помощью bash, третий — с помощью perl.

Вам также придется сделать файл исполняемым с помощью:

$ chmod +x myscript.sh

решение2

#!\bin\awk -fявляется допустимой строкой shebang, но она бесполезна. Она объявляет, что файл должен интерпретироваться программой, вызванной \bin\awkв текущем каталоге. Таким образом, если отвечать на вопрос буквально, есть два способа запустить этот файл как команду:

  • Создайте файл с именем \bin\awkв текущем каталоге, предположительно, путем копирования или связывания какой-либо версии awk. Также скрипт нужно сделать исполняемым.

    ln -s /bin/awk '\bin\awk'
    chmod +x /path/to/script
    /path/to/script
    
  • Вызывайте awk явно.

    awk -f /path/to/script
    

Если изменение файла разрешено, то строку shebang следует отредактировать так, чтобы она имела смысл: заменить обратные косые черты на косые черты. И сделать файл исполняемым (что, несомненно, является предполагаемым ответом, но просто сделать это не будет правильным ответом).

Связанный контент