Tôi đang gặp vấn đề khi chạy tập lệnh bash zsh
. Kịch bản tương tự như đoạn bên dưới và được cho là chạy theo bash:
#!/bin/bash
echo "<235234>" | egrep -oe [0-9]+
Tuy nhiên, shell của tôi theo mặc định là trên zsh
, vì vậy để chạy đoạn script trên, những gì tôi làm là gõ /bin/bash
vào zsh
dấu nhắc của tôi và sau đó tôi chạy . script.sh
.
Tuy nhiên, điều này dẫn đến một lỗi và tôi nhận được:
zsh: no matches found: [0-9]+
(Tôi nên nhận 235234
thay thế).
Tại thời điểm này tôi bối rối và có những câu hỏi sau:
- Nếu tôi đang ở
bash
, tại sao tôi nhận được một lỗi được báo cáo bởizsh
? - Tại sao
egrep
regrec thất bại? Biểu thức chính quy có vẻ đúng với tôi.
Lưu ý: Trong trường hợp có vấn đề, tôi không phải sửa đổi tập lệnh (tập lệnh được chia sẻ bởi nhiều người dùng và chúng tôi không có nghĩa vụ phải thay đổi tập lệnh).
Cảm ơn
exec zsh
trên tôi~/.bashrc
, cũng không có~/.profile
(tôi thậm chí không có.profile
trong thư mục nhà của tôi). Tôi không nhớ làm thế nào tôi quản lý để tạozsh
vỏ mặc định của tôi. Ngoài ra, xin lỗi vì sự nhầm lẫn, nhưng dòng đầu tiên trong kịch bản của tôi là shebang#!/bin/bash
. Với điều này, tôi vẫn không biết tại sao tìm nguồn cung cấp tệp từzsh
không hoạt động (nếu bạn có bất kỳ suy nghĩ nào về việc này hãy cho tôi biết). Trong cả hai trường hợp, tôi sẽ liên hệ với quản trị viên để cập nhật tập lệnh mặc dù để thêm dấu ngoặc kép vào biểu thức chính quy.