Gunakan set -xdi shell.
$ alias hello='echo hello world!'
$ hello
hello world!
$ set -x
$ hello
+ echo hello world!
hello world!
Menggunakan set -xbergantian pada xtraceopsi shell ( set +xmematikannya) dan harus bekerja di semua Bourne-seperti kerang, seperti bash, dash ksh93, pdkshdan 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 PS4variabel 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 -xsemua 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 argsberfungsi hanya dengan memperluas alias dan meninggalkan argumen untuk mengikutinya. Jika Anda benar-benar ingin dapat mengakses argumen, gunakan fungsi, dan kutip"$@"