1 votes

Pourquoi `read -N` ne fonctionne pas dans ce script sur le terminal mac ?

Quelqu'un peut-il me conseiller sur la manière de résoudre ce problème pour un terminal sous MacOS ? Merci de votre aide.

 read -s -N1 -p "Press a key: "
 K1="$REPLY"
 read -s -N2 -t 0.001
 K2="$REPLY"
 read -s -N1 -t 0.001
 K3="$REPLY"
 key="$K1$K2$K3"

Erreur : lire : -N : option invalide

script complet Entrez la description du lien ici

1 votes

Par ailleurs, l'usage veut que l'on nomme la variable en tant qu'argument de la commande read plutôt que de tout rassembler dans REPLY et le réaffecter ensuite ; par exemple read -s -N1 -p "Press a key: " K1

0 votes

Soyez prudent avec l'APA ; vous devriez probablement trouver un guide moins sujet à l'erreur et à l'opinion pour apprendre le Bash.

2voto

nohillside Points 82672

/bin/bash est la version 3.2.57 (ou similaire) qui ne supporte pas -N . Vous pouvez utiliser -n à la place (avec une fonctionnalité légèrement différente, donc pas sûr que les délais utilisés pour K2 et K3 fonctionnent toujours).

Si vous avez besoin de Bash 5, vous pouvez l'installer via Homebrew .

0 votes

Je vous remercie de votre attention. Je reçois maintenant une erreur : read : 0.001 : invalid timeout specification. Pouvez-vous m'aider ? Je vous remercie.

0 votes

@host Get Bash 5 :-)

0 votes

J'ai installé GNU bash, verze 5.1.12(1)-release (aarch64-apple-darwin21.1.0). Même erreur :(

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X