
Tengo la siguiente pregunta sobre UNIX:
¿Qué más se necesita cuando la línea superior desaparece?
#!\bin\awk -f
to make it run as a command?
Estoy pensando que cualquiera que sea el nombre del script, es necesario darle permiso usando chmod para que se ejecute.
Respuesta1
La primera línea con el "#!" será una ruta completa al programa que se ejecutará.
Los nombres de ruta en Linux tienen una barra diagonal entre directorios.
es decir:
#!/bin/awk -f
o
#!/bin/bash
o
#!/usr/bin/perl
El primer script se ejecutaría el programa de script usando awk
, el segundo usando bash
, el tercero usando perl
.
También tendrás que hacer que el archivo sea ejecutable con:
$ chmod +x myscript.sh
Respuesta2
#!\bin\awk -f
es una línea shebang válida, pero no es útil. Declara que el archivo debe ser interpretado por el programa llamado \bin\awk
en el directorio actual. Por lo tanto, para responder la pregunta literalmente, hay dos formas de ejecutar ese archivo como un comando:
Cree un archivo llamado
\bin\awk
en el directorio actual, presumiblemente copiando o vinculando alguna versión de awk. Además, el script debe ser ejecutable.ln -s /bin/awk '\bin\awk' chmod +x /path/to/script /path/to/script
Invocar awk explícitamente.
awk -f /path/to/script
Si se permite modificar el archivo, entonces la línea shebang debe editarse para que tenga sentido: reemplace las barras invertidas por barras inclinadas. Y haga que el archivo sea ejecutable (que sin duda es la respuesta prevista, pero simplemente hacerlo no sería una respuesta correcta).