Jika sebuah shell diminta untuk melakukan perintah yang mungkin tidak berguna ( atau sebagian tidak berguna ) yang dikenal untuk mengakhiri, seperti cat hugeregularfile.txt > /dev/null
, bisakah ia mengabaikan eksekusi perintah itu ( atau menjalankan yang lebih murah, katakanlah, touch -a hugeregularfile.txt
)?
Lebih umum, apakah shell mirip dengan kompiler C karena ia dapat melakukan transformasi pada kode sumber, asalkan perilaku yang dapat diamati secara eksternal adalah seolah-olah mesin abstrak mengevaluasinya?
EDIT
Nota Bene: Pertanyaan saya yang semula diajukan memiliki judul yang menanyakan apakah shell diizinkan untuk melakukan optimasi ini, bukan apakah harus atau bahkan apakah implementasi yang dapat melakukannya ada. Saya tertarik pada teori lebih dari praktik, meskipun keduanya diterima.
cat
ting itu membuat perbedaan besar. Shell dapat mengetahui bahwa file tersebut adalah perangkat, tetapi tidak perlu dapat diandalkan.
wc
, contohnya). Tapi sepengetahuan saya POSIX tidak mengambil posisi pada optimasi shell; Atau apakah itu?
ksh
. Seperti mereka tidak mengatakan proses terpisah tetapi subkulit lingkungan untuk memungkinkan optimasi penghematan garpu.