Otra forma podría estar haciendo los casos y que pasa un parámetro a la secuencia de comandos ejecutados. El ejemplo podría ser: Primero crea un archivo llamado "script.sh". A continuación, introduzca el código en él:
#!/bin/sh
my_function() {
echo "this is my function."
}
my_second_function() {
echo "this is my second function."
}
case "$1" in
'do_my_function')
my_function
;;
'do_my_second_function')
my_second_function
;;
*) #default execute
my_function
esac
Después de añadir el código anterior ejecutar estos comandos para verlo en acción:
[email protected]:/# chmod +x script.sh #This will make the file executable
[email protected]:/# ./script.sh #This will run the script without any parameters, triggering the default action.
this is my function.
[email protected]:/# ./script.sh do_my_second_function #Executing the script with parameter
this function is my second one.
[email protected]:/#
Para que esto funcione como usted requirió que sólo tendrá que ejecutar
su username -c '/path/to/script.sh do_my_second_function'
y todo debería funcionar bien. Espero que esto ayude :)
sudo no está habilitado. El administrador del sistema no lo habilitará. –
¿Cómo se hace esto con 'sudo'? un simple 'sudo my_function' no funcionará, incluso después de exportar esa función. – michas