Saya memiliki alias yang meneruskan beberapa parameter ke alat yang sering saya gunakan. Kadang saya berlari seperti diri saya sendiri, kadang di bawah sudo. Sayangnya, tentu saja, sudo tidak mengenali alias.
Adakah yang punya petunjuk tentang cara melewati alias?
Dalam hal ini, saya memiliki banyak opsi untuk perl ketika saya sedang melakukan debug:
alias pd='perl -Ilib -I/home/myuser/lib -d'
Terkadang, saya harus men-debug alat saya sebagai root, jadi, bukannya menjalankan:
pd ./mytool --some params
Saya perlu menjalankannya di bawah sudo. Saya sudah mencoba banyak cara:
sudo eval $(alias pd)\; pd ./mytool --some params
sudo $(alias pd)\; pd ./mytool --some params
sudo bash -c "$(alias pd)\; pd ./mytool --some params"
sudo bash -c "$(alias pd); pd ./mytool --some params"
sudo bash -c eval\ "$(alias pd)\; pd ./mytool --some params"
sudo bash -c eval\ "'$(alias pd)\; pd ./mytool --some params'"
Saya berharap cara yang bagus dan ringkas untuk memastikan bahwa alias pd saya saat ini sepenuhnya digunakan (kalau-kalau saya perlu mengubahnya nanti), meskipun beberapa upaya saya tidak ringkas sama sekali. Pilihan terakhir saya adalah memasukkannya ke dalam skrip shell dan meletakkannya di suatu tempat yang bisa ditemukan oleh sudo. Tapi terkadang alias sangat berguna, jadi ini pilihan terakhir.
A trailing space in value causes the next word to be checked for alias substitution when the alias is expanded.