GNU/Linux >> Belajar Linux >  >> Ubuntu

Perintah Yang Keluar Dengan Status Nol (bukan /bin/true)?

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


Ubuntu
  1. Mengapa /bin/sh Menunjuk Ke /bin/dash Dan Bukan /bin/bash??

  2. Make:Dh:Perintah Tidak Ditemukan?

  3. Otentikasi Proksi Dengan Terminal Ubuntu 14.04?

  1. “tidak dapat Membuat Direktori Cache /home//.composer/cache/repo/https—packagist.org/, Atau Direktori Tidak Dapat Ditulis. Melanjutkan Tanpa Cache”?

  2. Mengapa find -exec mv {} ./target/ + tidak berfungsi?

  3. Instal binari ke /bin, /sbin, /usr/bin dan /usr/sbin, interaksi dengan --prefix dan DESTDIR

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Perbedaan antara /bin dan /usr/bin

  3. #!/bin/sh vs #!/bin/bash untuk portabilitas maksimum