Gunakan set -x
di shell.
$ alias hello='echo hello world!'
$ hello
hello world!
$ set -x
$ hello
+ echo hello world!
hello world!
Menggunakan set -x
bergantian pada xtrace
opsi shell ( set +x
mematikannya) dan harus bekerja di semua Bourne-seperti kerang, seperti bash
, dash
ksh93
, pdksh
dan zsh
. Ini meminta shell untuk menampilkan perintah yang dieksekusi setelah ekspansi alias dan ekspansi variabel dll. Telah dilakukan.
Outputnya akan berada pada stream kesalahan standar shell (seperti prompt biasa) sehingga tidak akan mengganggu pengalihan output standar, dan itu akan didahului oleh prompt seperti yang didefinisikan oleh PS4
variabel shell ( +␣
secara default).
Contoh dengan beberapa fungsi:
$ world () { echo "world"; }
$ hello () { echo "hello"; }
$ helloworld () { printf '%s %s!\n' "$(hello)" "$(world)"; }
$ helloworld
hello world!
$ set -x
$ helloworld
+ helloworld
++ hello
++ echo hello
++ world
++ echo world
+ printf '%s %s!\n' hello world
hello world!
Saya menjalankan dengan set -x
semua kerang interaktif saya secara default. Sangat menyenangkan untuk melihat apa yang sebenarnya dieksekusi ... tapi saya perhatikan bahwa penyelesaian tab yang dapat diprogram, dll. Dapat menyebabkan keluaran jejak yang tidak diinginkan di beberapa shell.
$@
bagian dari alias Anda? Ingat bahwa alias tidak benar-benar mendukung argumen, yang akan diperluas ke parameter posisi (jika ada) dari konteks yang memanggil alias. Cara biasa menjalankansomealias some args
berfungsi hanya dengan memperluas alias dan meninggalkan argumen untuk mengikutinya. Jika Anda benar-benar ingin dapat mengakses argumen, gunakan fungsi, dan kutip"$@"