Saya mencoba untuk membuat metode fungsi dalam skrip bash yang mengeksekusi perintah yang disediakan untuk metode oleh parameter.
Berarti sesuatu seperti ini:
special_execute()
{
# Some code
# Here's the point where the command gets executed
$@
# More code
}
special_execute echo "abc"
Saya sudah mencoba saya $@
, "$@"
, $*
, "$*"
bagaimana aku bisa melakukan itu?
$@
bekerja untuk saya ..special() { $@; }
...special echo "foo"
memberikanfoo
perl -MTime::HiRes=sleep -le 'for(1..100) { print; sleep 0.05; }'
dantar -cvf "backups/test.tar" -P "backups/uncompressed_server_backup_(DO NOT TOUCH!)/server/"
"$@"
, maka Anda akan lebih sukses :)Jawaban:
Saya pikir itu hanya masalah mengutip ketika Anda memberikan argumen ke dalam fungsi.
Coba panggil seperti ini:
Jika Anda tidak ingin tanda kutip tunggal di sekitar
abc
maka ubah kutipan seperti ini:Debugging
Anda dapat membungkus bagian dalam fungsi tersebut agar bergema dengan lebih banyak verbositas.
Kemudian ketika Anda menjalankan perintah melalui fungsi,
special_execute
Anda dapat melihat apa yang terjadi.ps contoh:
contoh perl:
Argumen parsing
$1
Anda bisa melakukan sesuatu seperti ini untuk mem-parsing setiap argumen yang diajukan sebagai
$1
.Contoh
dengan debugging diaktifkan:
dengan debugging off -
-123
:dengan debugging off -
-456
:sumber
alias
.