Estoy tratando de crear un método de función en un script bash que ejecute un comando que los parámetros proporcionan al método.
Significa algo como esto:
special_execute()
{
# Some code
# Here's the point where the command gets executed
$@
# More code
}
special_execute echo "abc"
Ya he probado yo $@, "$@", $*, "$*"¿cómo podría hacerlo?

$@funciona para mí ...special() { $@; }...special echo "foo"dafooperl -MTime::HiRes=sleep -le 'for(1..100) { print; sleep 0.05; }'ytar -cvf "backups/test.tar" -P "backups/uncompressed_server_backup_(DO NOT TOUCH!)/server/""$@", entonces tendrá más éxito :)Respuestas:
Creo que es solo un problema de citas cuando pasas los argumentos a la función.
Intenta llamarlo así:
Si no desea las comillas simples
abc, cambie las citas de esta manera:Depuración
Puede ajustar los elementos internos de la función para que se repita con más verbosidad.
Luego, cuando ejecuta comandos a través de la función,
special_executepuede ver lo que está sucediendo.ejemplo ps:
ejemplo perl:
Argumento de análisis
$1Podrías hacer algo como esto para analizar cualquier argumento pasado como
$1.Ejemplo
con depuración habilitada:
con depuración desactivada
-123:con depuración desactivada
-456:fuente
alias.