Nah, urutan yang tepat dapat bervariasi, karena mungkin ada alias shell atau fungsi yang pertama kali diperluas / ditafsirkan sebelum program yang sebenarnya dijalankan, dan kemudian perbedaan untuk nama file yang memenuhi syarat ( /usr/libexec/foo) versus sesuatu yang akan dicari melalui semua direktori dari PATHvariabel lingkungan (adil foo). Juga, rincian eksekusi dapat memperumit masalah, karena foo | bar | zotmembutuhkan lebih banyak pekerjaan untuk shell (beberapa jumlah fork(2), dup(2)dan, tentu saja, pipe(2)antara panggilan sistem lainnya), sedangkan sesuatu seperti exec fooini jauh lebih sedikit bekerja sebagai shell hanya menggantikan dirinya dengan program baru (yaitu, tidak fork). Juga penting adalah kelompok proses (terutama kelompok proses latar depan, semua PID yang makanSIGINTketika seseorang mulai menumbuk pada Ctrl+ C, sesi, dan apakah pekerjaan akan dijalankan di latar belakang, dipantau ( foo &) atau latar belakang, diabaikan ( foo & disown). Rincian pengalihan I / O juga akan mengubah hal-hal, misalnya, jika input standar ditutup oleh shell ( foo <&-), atau apakah file dibuka sebagai stdin ( foo < blah).
straceatau yang serupa akan memberi informasi tentang panggilan sistem tertentu yang dibuat sepanjang proses ini, dan harus ada halaman manual untuk masing-masing panggilan itu. Pembacaan tingkat sistem yang sesuai adalah sejumlah bab dari "Programming Lanjutan di Lingkungan UNIX" dari Stevens, sementara buku shell (mis., "Dari Bash ke Z Shell") akan membahas sisi sisi hal-hal dengan lebih terinci.