cut -c no funcionará en mi archivo .sh

cut -c no funcionará en mi archivo .sh

He probado los siguientes comandos

cut -c-11 ifshell.sh 

cat ifshell.sh | cut -c-11 ifshell.sh 

cat ifshell.sh | awk '{print $1} | cut -c-11 ifshell.sh

Pero cada vez obtengo el contenido completo del archivo .sh. Estos comandos funcionan perfectamente en archivos .txt. El objetivo principal es extraer los primeros 11 caracteres del script "#!/bin/bash" para verificar si el archivo es realmente un script bash bin.

Respuesta1

También puedes usar el filecomando estándar ̀:

[PRD][]user@localhost:~ 17:21:30
$ head -n 1 setproxymkt.sh 
#!/bin/bash
[PRD][]user@localhost:~ 17:21:38
$ file setproxymkt.sh 
setproxymkt.sh: Bourne-Again shell script, ASCII text executable

Respuesta2

Puede ser que lo siguiente se adapte mejor a lo que está intentando lograr:

# #// FILE could be a for-loop as well for example.
FILE="bash_scropt.sh" ;
if grep '#!/bin/bash' $FILE 1>/dev/null ; then
    printf "$FILE bash-script\n" ;
else
    printf "> $FILE -- NOT bash\n" ;
fi ;

También puedes mezclar esto con la sugerencia de @netmonk donde un grep en la cabeza sería más conciso, por ejemplo:

FILE="bash_scropt.sh" ; if head -n 1 $FILE | grep '#!/bin/bash' 1>/dev/null ; then printf "$FILE bash-script\n" ; else printf "> $FILE -- NOT bash\n" ; fi

información relacionada