GNU/Linux >> Belajar Linux >  >> Linux

Apakah Shell Portabel Untuk Menjalankan Perintah Pada Baris Yang Sama Setelah Penetapan Variabel?

Apakah ada standar yang mencakup portabilitas menjalankan perintah setelah penetapan variabel pada baris yang sama?

APPLE="cider" echo hi

Seberapa portabel sesuatu seperti itu? Di mana itu akan berhasil dan di mana tidak?

Juga:skrip shell saya dimulai dengan #!/bin/sh jika itu membuat perbedaan.

Jawaban yang Diterima:

Selama Anda menggunakan shell yang mendukung POSIX, ya.

Dari definisi POSIX bahasa perintah shell:(poin relevan dicetak tebal)

“Perintah sederhana” adalah urutan penugasan variabel opsional dan pengalihan, dalam urutan apa pun, secara opsional diikuti oleh kata-kata dan pengalihan, diakhiri oleh operator kontrol.

Ketika perintah sederhana yang diberikan diperlukan untuk dieksekusi (yaitu, ketika setiap konstruksi bersyarat seperti daftar DAN-ATAU atau pernyataan kasus belum melewati perintah sederhana), ekspansi, penugasan, dan pengalihan berikut semua harus dilakukan dari awal teks perintah sampai akhir:

  1. Kata-kata yang dikenali sebagai penetapan variabel atau pengalihan menurut Aturan Tata Bahasa Shell disimpan untuk diproses di langkah 3 dan 4.

  2. Kata-kata yang bukan merupakan tugas variabel atau pengalihan harus diperluas. Jika ada bidang yang tersisa setelah perluasannya, bidang pertama akan dianggap sebagai nama perintah dan bidang yang tersisa adalah argumen untuk perintah tersebut.

  3. Pengalihan harus dilakukan seperti yang dijelaskan dalam Pengalihan.

  4. Setiap penetapan variabel harus diperluas untuk perluasan tilde, perluasan parameter, substitusi perintah, perluasan aritmatika, dan penghapusan kutipan sebelum menetapkan nilai.

Dalam daftar sebelumnya, urutan langkah 3 dan 4 dapat dibalik untuk pemrosesan utilitas bawaan khusus; lihat Utilitas Bawaan Khusus.

Jika tidak ada nama perintah yang dihasilkan, penetapan variabel akan memengaruhi lingkungan eksekusi saat ini. Jika tidak, penugasan variabel harus diekspor untuk lingkungan eksekusi perintah dan tidak akan memengaruhi lingkungan eksekusi saat ini (kecuali untuk built-in khusus).

Juga, ya #!/bin/sh penting. Dari definisi POSIX dari sh :

Utilitas sh adalah penerjemah bahasa perintah yang akan mengeksekusi perintah yang dibaca dari string baris perintah, input standar, atau file tertentu. Aplikasi harus memastikan bahwa perintah yang akan dijalankan diungkapkan dalam bahasa yang dijelaskan dalam Bahasa Perintah Shell .

Jadi pada dasarnya dikatakan bahwa sh harus mengikuti aturan yang kami bahas di atas.

Terkait:Komponen cangkang hitam penghubung kabel ini disebut?

Jadi selama Anda menggunakan OS yang sesuai dengan POSIX, Anda baik-baik saja.


Linux
  1. Cara Menjalankan Query MySQL/MariaDB Langsung dari Command Line Linux

  2. Alias ​​baris perintah di Linux Shell

  3. Tip/trik navigasi baris perintah Linux 3 - variabel lingkungan CDPATH

  1. Bagaimana Cara Menetapkan Output Perintah Ke Variabel Shell?

  2. Teks Gema Setelah Perintah Curl Pada Baris Yang Sama?

  3. Bagaimana cara menginstal skrip untuk dijalankan di mana saja dari baris perintah?

  1. Bagaimana saya bisa menjalankan perintah yang berbeda tetapi dengan argumen yang sama?

  2. Bagaimana cara menjalankan perintah Vim dari shell?

  3. Baris perintah untuk kembali ke GUI setelah Ctrl-Alt-F1?