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).