Saya mengalami masalah menjalankan skrip bash di zsh
. Script mirip dengan yang di bawah ini dan seharusnya dijalankan di bawah bash:
#!/bin/bash
echo "<235234>" | egrep -oe [0-9]+
Namun, shell saya secara default aktif zsh
, jadi untuk menjalankan skrip di atas apa yang saya lakukan adalah mengetik /bin/bash
pada zsh
prompt saya , dan kemudian saya jalankan . script.sh
.
Namun, ini menghasilkan kesalahan, dan saya mendapatkan:
zsh: no matches found: [0-9]+
(Saya harus mendapatkan 235234
sebagai gantinya).
Pada titik ini saya bingung dan memiliki pertanyaan-pertanyaan berikut:
- Jika saya masuk
bash
, mengapa saya mendapatkan kesalahan yang dilaporkanzsh
? - Mengapa
egrep
regexp gagal? Ekspresi reguler terlihat benar bagi saya.
Catatan: Jika itu penting, saya tidak seharusnya memodifikasi skrip (skrip dibagikan oleh banyak pengguna dan kami tidak seharusnya melakukan perubahan padanya).
Terima kasih
exec zsh
di saya~/.bashrc
, atau di saya~/.profile
(saya bahkan tidak punya.profile
di direktori rumah saya). Saya tidak ingat bagaimana saya berhasil membuatzsh
shell default saya. Juga, maaf atas kebingungannya, tetapi baris pertama pada skrip saya adalah shebang#!/bin/bash
. Dengan ini, saya masih tidak tahu mengapa sumber filezsh
tidak berfungsi (jika Anda memiliki pemikiran tentang hal ini, beri tahu saya). Dalam kedua kasus, saya akan menghubungi administrator untuk memperbarui skrip untuk menambahkan tanda kutip ke regexp.