Saya mencoba memahami variabel lokal / lingkungan dan mengekspor / mengatur perintah.
$ set FILEM="razrax"
$ echo $FILEM
$ FILEN="test"
$ echo $FILEN
test
Tolong jelaskan mengapa echo $FILEM
mengembalikan string kosong
Anda bingung bash
dengan csh
.
Dalam bash
seperti di Bourne-seperti shell, set
adalah perintah untuk set pilihan (pengaturan konfigurasi shell seperti -f
, -C
, -o noclobber
...) dan parameter posisi ( $1
, $2
...).
set FILEM="razrax"
Setel $1
ke FILEM=razrax
.
$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax
Sintaks untuk tugas variabel dalam cangkang mirip Bourne adalah:
VAR=value
(tidak ada ruang yang diizinkan di kedua sisi =
).
ksh
dan beberapa shell mirip Bourne lainnya (mksh, pdksh, zsh) juga dapat menetapkan variabel array dengan set
:
set -A array value1 value2
zsh
, bash
, yash
Dan versi yang lebih baru dari ksh
penggunaan sintaks ini sebagai gantinya:
array=(value1 value2)
Sebaliknya, dalam csh
atau tcsh
, sintaksnya adalah:
set VAR = value
set array = (value1 value2)
(spasi di sekitar =
opsional).
Dalam rc
/ es
kerang:
VAR = value
array = (value1 value2)
(spasi di sekitar =
opsional).
set -C
setel-C
opsi (sama denganset -o noclobber
).set foo
ditugaskanfoo
ke$1
(dan$#
1, ($2
,$3
tidak disetel jika sebelumnya ditetapkan)). Periksa manual shell Anda untuk detailnya.