Saya memiliki Makefile yang menjalankan alat yang membutuhkan sedikit waktu; itu memungkinkan saya untuk mengganti perintah yang digunakan:
make TOOL=alternative-tool
Saya ingin melewati langkah itu di Makefile, jadi saya mencari perintah yang keluar dengan status 0, dan yang memiliki efek samping yang dapat diabaikan.
Jelas, saya hanya bisa menggunakan true
, tapi itu agak membingungkan:
make TOOL=true
Itu berbunyi seolah-olah saya ingin untuk menjalankan alat ini, tetapi saya tidak melakukannya.
Apakah ada executable yang diinstal secara default yang bukan /bin/true
yang keluar dengan status 0, dan memiliki nama yang menarik dan mudah diketik?
Jawaban yang Diterima:
Meskipun Anda telah meminta sesuatu yang “bukan /bin/true
“, menggantikan true
dengan nama lengkap /bin/true
untuk menunjukkan bahwa itu adalah true
program daripada arti lain dari "benar" mungkin adalah solusi terbaik.
Perhatian Anda adalah bahwa true
di
make TOOL=true
tampaknya menjadi sesuatu selain nama perintah. Tetapi jika Anda menulis
make TOOL=/bin/true
maka itu jelas merupakan perintah. Seseorang mungkin salah membaca TOOL=true
berarti bahwa beberapa alat lain di suatu tempat dimaksudkan, tetapi tidak ada kesalahan membaca TOOL=/bin/true
mungkin.
Saya tidak yakin kapan :
, yang merupakan shell bawaan tetapi bukan perintah eksternal, akan berfungsi. Henning Makholm telah melaporkan bahwa tampaknya berhasil. Tapi saya pikir itu tidak berhasil dalam semua situasi, dan Anda menemukan bahwa itu tidak berhasil untuk Anda.
Untuk alias shell, Anda tidak dapat menggunakannya karena ekspansi alias tidak dilakukan dalam argumen yang Anda berikan ke perintah, juga makefile tidak menggunakan alias shell yang ditentukan sebelumnya. Bahkan jika make
menjalankan perintah Anda di shell baru, shell tersebut tidak akan memiliki alias (dan tidak akan menggunakannya meskipun memang memilikinya, karena shell tersebut akan menjadi shell noninteraktif, di mana ekspansi alias tidak diaktifkan secara otomatis).