
Tenho a seguinte dúvida sobre UNIX:
O que mais é necessário quando a linha superior sai
#!\bin\awk -f
to make it run as a command?
Estou pensando que qualquer que seja o nome do script, ele precisa receber permissão usando chmod para executá-lo.
Responder1
A primeira linha com o "#!" será um caminho completo para o programa a ser executado.
Os nomes de caminho no Linux têm uma barra entre os diretórios.
ou seja:
#!/bin/awk -f
ou
#!/bin/bash
ou
#!/usr/bin/perl
O primeiro script seria executado no programa de script usando awk
, o segundo usando bash
, o terceiro usando perl
.
Você também terá que tornar o arquivo executável com:
$ chmod +x myscript.sh
Responder2
#!\bin\awk -f
é uma linha shebang válida, mas não é útil. Declara que o arquivo deve ser interpretado pelo programa chamado \bin\awk
no diretório atual. Assim, para responder literalmente à pergunta, existem duas maneiras de executar esse arquivo como um comando:
Crie um arquivo chamado
\bin\awk
no diretório atual, provavelmente copiando ou vinculando alguma versão do awk. Além disso, o script precisa ser tornado executável.ln -s /bin/awk '\bin\awk' chmod +x /path/to/script /path/to/script
Invoque awk explicitamente.
awk -f /path/to/script
Se a modificação do arquivo for permitida, então a linha shebang deve ser editada para fazer sentido: substitua as barras invertidas por barras. E torne o arquivo executável (que é sem dúvida a resposta pretendida, mas apenas fazer isso não seria uma resposta correta).