GNU/Linux >> Tutoriales Linux >  >> Linux

¿Pruebas de concha de pescado para la existencia de un archivo en $path?

Estoy tratando de probar en un script de concha de pez la existencia del figlet binario. Como uso Linux y OS X, no puedo confiar en que el archivo esté en la misma ubicación y necesito resolverlo dinámicamente. Estoy acostumbrado a hacer esto con $(which) en bash, que funciona.

Sin embargo, con pescado esto no funciona correctamente. ¿Por qué?

function print_hostname --description 'print hostname'
  if test -x (which figlet)
    hostname | figlet
  end
end

Respuesta aceptada:

Usar type en fish como en shell tipo Bourne:

if type -q figlet
  hostname | figlet
end

O para limitar a ejecutables en $PATH (ignorando funciones, funciones integradas):

if command -s figlet > /dev/null
  hostname | figlet
end

Linux
  1. ¿Recursos para la programación de Shell portátil?

  2. ¿Descriptores de archivos y secuencias de comandos de Shell?

  3. ¿Script de Shell para mover archivos más antiguos?

  4. ¿Extensiones de archivo para secuencias de comandos de Unix Shell?

  5. Pruebas unitarias para scripts de shell

Comandos Secure Shell (SSH) para la administración de Linux.

Distribuciones populares de Linux para pruebas de seguridad

Comando ls en Linux para listar archivos

Habilitar la marca de tiempo para el comando de historial en Fish Shell

¿Qué es un archivo .sh?

¿Puede un script de shell esperar a que cambie un archivo y actuar?