string=123456
if [ $string == 123456 ]; then
echo 123
fi
Ini berfungsi dengan baik, tetapi jika saya mengubah == ke = ~ Saya mendapatkan kesalahan ini:
./test: line 3: [: =~: binary operator expected
bash
shell-script
Lumify
sumber
sumber
=~
dalam hal ini salah.=~
membandingkan derai (sisi kiri penugasan) dengan ekspresi regulerregex
di sisi kanan persembahan. Ekspresi reguler dalam bentuknya yang paling sederhana dilewatkan seperti'[0-9][0-9]'
123456
RE yang validJawaban:
Bash 's regex yang cocok hanya berfungsi dalam tanda kurung siku ganda
[[ ... ]]
:sumber
[[ ... ]]
, karena tidak ada pemisahan kata atau perluasan nama path terjadi di sana. Mereka hanya diperlukan ketika menggunakan tanda kurung tunggal[ ... ]
(kedua sisi) dan di sebelah kanan ekspresi braket ganda.