
У меня есть следующий вопрос по 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 следует отредактировать так, чтобы она имела смысл: заменить обратные косые черты на косые черты. И сделать файл исполняемым (что, несомненно, является предполагаемым ответом, но просто сделать это не будет правильным ответом).