Câu trả lời:
Bạn đang bối rối bash
với csh
.
Trong bash
giống như trong bất kỳ Bourne giống như vỏ, set
là lệnh để thiết lập tùy chọn (thiết lập cấu hình vỏ thích -f
, -C
, -o noclobber
...) và các thông số vị trí ( $1
, $2
...).
set FILEM="razrax"
Đặt $1
thành FILEM=razrax
.
$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax
Cú pháp gán biến trong các shell giống Bourne là:
VAR=value
(không có không gian cho phép ở hai bên =
).
ksh
và một số shell giống Bourne khác (mksh, pdksh, zsh) cũng có thể gán các biến mảng với set
:
set -A array value1 value2
zsh
, bash
, yash
Và các phiên bản mới hơn của ksh
sử dụng cú pháp này để thay thế:
array=(value1 value2)
Ngược lại, trong csh
hoặc tcsh
, cú pháp là:
set VAR = value
set array = (value1 value2)
(không gian xung quanh =
tùy chọn).
Trong rc
/ es
vỏ:
VAR = value
array = (value1 value2)
(không gian xung quanh =
tùy chọn).
set -C
đặt -C
tùy chọn (giống như set -o noclobber
). set foo
gán foo
cho $1
(và $#
là 1, ( $2
, $3
không được đặt nếu được đặt trước đó)). Kiểm tra hướng dẫn sử dụng vỏ của bạn để biết chi tiết.