¿Cómo verifico si se ejecuta un conjunto de comandos al inicio?

¿Cómo verifico si se ejecuta un conjunto de comandos al inicio?

Estoy en el proceso de crear una interfaz gráfica de usuario xrandry necesito que se ejecuten algunos comandos al inicio.

Estoy usando un .desktoparchivo colocado en ~/.config/autostart.

No puedo decir si esto funcionará, ya que xrandrno funciona con mi configuración; sé que las cosas están funcionando como deben ser; es solo que mi sistema no lo admite; obtendré un montón de errores xrandr. Lo que también significa que obtendré errores al iniciar y ningún cambio notable.

¿Hay alguna forma de saber si se han ejecutado los comandos?

Respuesta1

Si su archivo iniciado automáticamente .desktopes un script, simplemente puede poner un eco de control en el script como en el siguiente ejemplo:

# if yyou want only data saved for one run

echo "Script has run on $(date)" > ~/script.log

# if you want a continous log output append

if [ -e ~/script-log ]
    then
        echo "Script has run on $(date)" >> ~/script.log
else
        touch ~/script.log
        echo "Script has run on $(date)" >> ~/script.log
fi

De esta manera, incluso puede generar algunos datos variables que quizás desee controlar de esta manera. Solo asegúrese de que el resultado final se imprima después de todos los comandos del script para que sepa que el script se ha ejecutado.

Si desea saber exactamente si los comandos de su script fallaron, también puede hacer:

# do this at start of your script

if [ -e ~/script-error.log ]
    then
        # we do nothing
else
        touch ~/script-error.log
fi

# then within your script (I use as example here cd /root just to demonstrate)
# you can do this with nearly all commands

cd /root 2>> ~/script-error.log

Esto se recuperará solo si uno de sus comandos arrojara un error. Seguro que no es aplicable en todas partes, pero es mejor que no tenga ningún resultado.

Explicación de la tubería:

# single piping symbol (overwrite the existing file and creates one if not existant)
>               # pipes all output 
1>              # pipes only success messages
2>              # pipes only error messages

# double piping symbol (append to an existing file and fail if file does not exist)
>>              # pipes all output
1>>             # pipes only success messages
2>>             # pipes only error messages

Si desea obtener más información sobre las secuencias de comandos bash en profundidad, aquí hay dos enlaces:

Guía de Bash para principiantes - Machtelt Garrels - 2008
Guía avanzada de secuencias de comandos Bash - Mendel Cooper - 2014

información relacionada