Próbuję utworzyć metodę funkcji w skrypcie bash, który wykonuje polecenie dostarczone do metody przez parametry.
Czyli coś takiego:
special_execute()
{
# Some code
# Here's the point where the command gets executed
$@
# More code
}
special_execute echo "abc"
Próbowałem już I $@
, "$@"
, $*
, "$*"
w jaki sposób mogę to zrobić?
$@
działa dla mnie ..special() { $@; }
...special echo "foo"
dajefoo
perl -MTime::HiRes=sleep -le 'for(1..100) { print; sleep 0.05; }'
itar -cvf "backups/test.tar" -P "backups/uncompressed_server_backup_(DO NOT TOUCH!)/server/"
"$@"
, a wtedy odniesiesz większy sukces :)Odpowiedzi:
Myślę, że to tylko kwestia cytowania, gdy przekazujesz argumenty do funkcji.
Spróbuj nazwać to tak:
Jeśli nie chcesz mieć pojedynczych cytatów,
abc
zmień cytat w następujący sposób:Debugowanie
Możesz owinąć elementy wewnętrzne funkcji, aby odbijały się echem z większą szczegółowością.
Następnie, gdy uruchamiasz polecenia przez funkcję,
special_execute
możesz zobaczyć, co się dzieje.przykład ps:
przykład perla:
Parsowanie argumentu
$1
Możesz zrobić coś takiego, aby przeanalizować argumenty przekazane jako
$1
.Przykład
z włączonym debugowaniem:
z wyłączonym debugowaniem -
-123
:z wyłączonym debugowaniem -
-456
:źródło
alias
.