Jawaban:
Terminal Anda menjalankan shell (kemungkinan besar bash
), yang mana meminta perintah Anda dan menjalankannya.
Selain mode interaktif ini, Anda juga dapat menggunakan shell untuk menjalankan perintah dari file. Untuk menjalankan perintah dalam file Anda, Anda dapat memanggil shell langsung suka bash script
atau Anda dapat memulai file Anda dengan "shebang" #!/bin/bash
dan membuatnya dapat dieksekusi ( chmod +x script
). Kemudian Anda dapat memperlakukan skrip seperti biner dan menjalankannya sebagai contoh ./script
atau meletakkannya di tempat di mana shell Anda mencarinya. ( echo $PATH
)
Kemungkinan besar shell interaktif Anda dan shell yang digunakan untuk menjalankannya bash
. Dari perspektif bash "hari pertama belajar linux" bekerja persis sama di kedua mode. - Jauh kemudian Anda mungkin tersandung tentang sedikit perbedaan. Jika Anda benar-benar ingin tahu tentang detail saya sarankan membaca man bash
dan mencari tempat yang menyebutkan "interaktif". (Anda dapat mencari halaman manual, dengan menekan /
.)
Satu hal penting yang perlu diperhatikan adalah skrip dijalankan sebagai proses baru. Ini terutama berarti bahwa variabel yang diatur dalam skrip tidak terlihat di shell panggilan.
$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$
Tanpa ekspor a
bahkan tidak terlihat oleh skrip dalam.
Secara umum, jawabannya adalah "tidak", perintah dalam shell sama dalam skrip, dalam sintaks dan semantik.
Tetapi ada banyak nuansa kecil yang terkait dengan konfigurasi lingkungan (variabel apa yang digunakan dan apa yang ditetapkan).
shell interaktif pilihan untuk Linux adalah bash, tapi scripting sering menggunakan penerjemah lainnya ( sh
yang merupakan pendahulu dari bash
, ksh
yang setara dengan bash), sehingga Anda harus mempertimbangkan apa shell yang digunakan (shell saat s nama secara tradisional disimpan dalam variabel SHELL
, coba ketik echo $SHELL
).
mungkin ada perbedaan dalam konfigurasi interpreter yang sama untuk sesi interaktif dan untuk eksekusi skrip.
Tidak. Sebuah skrip adalah daftar perintah yang bisa Anda ketik di terminal.
Anda dapat menempelkan totalitas skrip di terminal, dan hasilnya akan sama dengan menjalankannya.
Sebaliknya, Anda dapat "menyimpan" perintah terminal Anda di dalam file dan mengubahnya menjadi skrip yang dapat digunakan kembali dan membaginya dengan keluarga dan teman-teman Anda.
source script_file
. yang akan mengedit vars ENV dalam konteks saat ini. saat menjalankan skrip karena ./script_file
tidak akan memodifikasi ENV, kecuali export
digunakan secara eksplisit.
export
skrip tidak dimungkinkan untuk memodifikasi variabel apa pun dari shell panggilan. Hal yang sama berlaku untuk hal-hal seperti PWD, alias yang didefinisikan, fungsi, dan hal-hal seperti itu. Mereka dapat diubah hanya secara interaktif atau dengan sumber file. Tapi ya, itu mungkin tidak ada yang akan tersandung pada hari pertama. :)