Deseo saber cómo determinar si un archivo de script se ejecuta o se obtiene.Cómo determinar si un archivo de script de shell se obtiene en Bash
Por ejemplo,
# Shell script filename build.sh
if [ "x$0" = "xbash" ]; then
echo "I am sourced by Bash"
else
echo "I am executed by Bash"
fi
Si Mecanografié
source build.sh
sería la salida estoy de origen por Bash.
Si Mecanografié
./build.sh
Sería salida Estoy ejecutados por Bash.
Actualmente, uso $ 0 para hacer esto. ¿Hay una mejor idea?
Inspirado por Tripeee, he encontrado una mejor manera:
#!/bin/bash
if [ "x$(awk -F/ '{print $NF}' <<< $0)" = 'xcdruntime' ]; then
echo Try to source me, not execute me.
else
cd /opt/www/app/pepsi/protected/runtime
fi
Su solución no funciona, ya que puede ejecutar un script a través de 'bash build.sh'. También tenga en cuenta que un script se puede encargar, es algo estúpido, pero posible. – user123444555621
@ Pumbaa80 eh ... He intentado 'bash build.sh' mi solución aún funciona – hellojinjie
Ah, no lo olvides;) – user123444555621