Biên tập:
Có vẻ để làm việc trong bash
. Có vẻ như vấn đề có liên quan đến zsh
. Nếu có một trang web tốt hơn để đăng vấn đề này trên cho tôi biết.
Tôi đang viết một kịch bản đơn giản tạo ra một loạt các thư mục. Tôi muốn người dùng xác nhận trước khi tôi làm như vậy. Tôi đang sử dụng những điều sau đây làm cơ sở, nhưng dường như không thể làm cho nó chạy trong một hàm bash. Nếu tôi đặt nó bên ngoài một chức năng, nó hoạt động tốt. Đây là một ví dụ cô lập:
đọc
#!/bin/bash
test() {
read -p "Here be dragons. Continue?" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "You asked for it..."
fi
}
Tìm nguồn tệp và / hoặc test
kết quả trong lỗi sau : read:1: -p: no coprocess
. Cùng một đầu ra khi tôi đặt nó trong.bashrc
Chỉnh sửa ::
@hennes
- Tôi muốn hàm này nằm trong một tệp cấu hình, vì vậy tôi có thể gọi nó từ bất kỳ thư mục nào (lý tưởng là .bashrc hoặc .zshrc)
- Tôi đã sửa định dạng của dòng nhận xét đầu tiên. Vấn đề vẫn còn tồn tại trong
zsh
- Phiên bản Bash là 3.2, nhưng bạn đã giúp tôi nhận ra rằng vấn đề là do zsh chứ không phải bash.
zsh
nhưng không nghĩ rằng sẽ có xung đột với các tập lệnh bash (tôi có một số tập lệnh tương tự khác đang chạy ổn). Tôi đã thử lại và trả lời câu hỏi của bạn. Cám ơn đã chỉ tôi hướng đi đúng!
./read.sh
. Không cần thiết, bạn chạy nó theo bất kỳ cách nào khác hoặc nếu bạn đặt nó trong một kịch bản khởi động. Và nếu bạn muốn chạy nó trong zsh với `zsh ./read.sh 'thì các dòng bắt đầu bằng # bị bỏ qua. Họ cũng nhầm lẫn vì họ cho ấn tượng rằng bạn sử dụng bash khi bạn sử dụng zsh).
#! /bin/bash
với một không gian phía sau cô shebang? Tôi nghĩ những người không được phép? 3) '#! / Usr / bin / env bash' có lẽ tốt hơn. 4) Phiên bản bash nào? (Tôi đã thử nghiệm với bash 4.1.10 trên FreeBSD và không có lỗi)