Edit:
Tampaknya bekerja di dalam bash
. Tampaknya masalah ini berkaitan dengan zsh
. Jika ada situs yang lebih baik untuk mengirim masalah ini, beri tahu saya.
Saya sedang menulis skrip sederhana yang menciptakan serangkaian direktori. Saya ingin pengguna memberikan konfirmasi sebelum saya melakukannya. Saya menggunakan berikut ini sebagai dasar, tetapi tampaknya tidak bisa menjalankannya dalam fungsi bash. Jika saya letakkan di luar fungsi itu berfungsi dengan baik. Berikut ini adalah contoh yang terisolasi:
baca.sh
#!/bin/bash
test() {
read -p "Here be dragons. Continue?" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "You asked for it..."
fi
}
kode dari pos SO ini .
Sourcing file dan / atau test
hasil dalam kesalahan berikut: read:1: -p: no coprocess
. Output yang sama ketika saya menempatkannya di.bashrc
Edit ::
@hennes
- Saya ingin fungsi berada dalam file konfigurasi, jadi saya bisa memanggilnya dari direktori apa pun (idealnya .bashrc atau .zshrc)
- Saya telah mengoreksi pemformatan baris komentar pertama. Masalah masih ada di
zsh
- Versi Bash adalah 3.2, tetapi Anda telah membantu saya mengetahui bahwa masalahnya ada pada zsh dan bukan bash.
zsh
tetapi tidak berpikir bahwa akan ada konflik dengan skrip bash (saya punya beberapa skrip serupa yang berjalan dengan baik). Saya telah mengulanginya, dan menjawab pertanyaan Anda. Terima kasih telah mengarahkan saya ke arah yang benar!
./read.sh
. Anda tidak perlu menjalankannya dengan cara lain atau jika Anda memasukkannya ke skrip startup. Dan jika Anda ingin menjalankannya di zsh dengan `zsh ./read.sh 'maka baris yang dimulai dengan # diabaikan. Mereka juga bingung karena mereka memberi kesan bahwa Anda menggunakan bash ketika Anda menggunakan zsh).
#! /bin/bash
dengan ruang di belakang dia shebang? Saya pikir itu tidak diizinkan? 3) '#! / Usr / bin / env bash' mungkin lebih baik. 4) Versi bash mana? (Saya diuji dengan bash 4.1.10 di FreeBSD dan tidak mendapatkan kesalahan)