Ada utilitas standar true
dan false
. Yang pertama tidak melakukan apa-apa selain mengembalikan status keluar 0 untuk eksekusi yang berhasil, yang kedua tidak melakukan apa-apa selain mengembalikan nilai bukan nol yang menunjukkan hasil yang tidak berhasil. Anda mungkin menginginkan yang pertama.
Meskipun beberapa sistem yang benar-benar ingin Anda memasukkan beberapa teks (melakukan pesan, dll.) akan memeriksa apakah file yang "diedit" benar-benar dimodifikasi, dan hanya menjalankan true
tidak akan terbang dalam kasus itu. Sebagai gantinya, touch
mungkin berhasil; itu memperbarui stempel waktu dari file apa pun yang didapatnya sebagai argumen.
Namun, jika editor mendapatkan argumen lain selain nama file touch
akan membuatnya sebagai file. Banyak editor mendukung argumen seperti +NNN
untuk memberi tahu baris awal untuk memasukkan kursor, sehingga editor dapat disebut sebagai $EDITOR +123 filename.txt
. (Misalnya less
melakukan ini, git
sepertinya tidak.)
Perhatikan bahwa Anda ingin menggunakan true
, bukan mis. /bin/true
. Pertama, jika ada shell yang terlibat, menentukan perintah tanpa jalur akan memungkinkan shell menggunakan implementasi bawaan, dan jika shell tidak digunakan, file biner akan ditemukan di PATH
omong-omong. Kedua, tidak semua sistem memiliki /bin/true
; misalnya di macOS, ini adalah /usr/bin/true
. (Terima kasih @jpaugh.)
(* atau seperti yang dikatakan halaman manual GNU, false "[tidak] apa-apa, tidak berhasil". Terima kasih @8bittree.)
Di shell, Anda dapat menggunakan :
bawaan . Ini bukan file yang dapat dieksekusi, tetapi dalam skrip shell atau apa pun yang dieksekusi dari skrip shell akan berfungsi:
$ help :
:: :
Null command.
No effect; the command does nothing.
Exit Status:
Always succeeds.
Ini mungkin paling dikenal untuk digunakan dalam pernyataan while (while :; do break; done
), tetapi tidak terbatas pada penggunaan tersebut. Jika Anda perlu melakukan ini berkali-kali, jauh lebih cepat jika tidak memulai proses terpisah:
$ time for i in $(seq 1000); do :; done
real 0m0,007s
user 0m0,002s
sys 0m0,004s
$ time for i in $(seq 1000); do /bin/true; done
real 0m0,686s
user 0m0,462s
sys 0m0,217s
Saran @ilkkachu untuk menggunakan true
perintah mungkin adalah jawaban terbaik, tetapi Anda juga bisa menggunakan perintah
sleep 0