commande de lecture n'attend pas d'entrée
J'ai des problème de l'exécution d'un simple script en bash. Le script est comme ceci:
#! /bin/sh
read -p 'press [ENTER] to continue deleting line'
sudo sed -ie '$d' /home/hpccuser/.profile
et quand j'execute le script ./le script de la sortie ressemble à ceci:
press [ENTER] to continue deleting line./script: 3: read: arg count
[sudo] password for user
Je exécutez la commande de lecture directement dans le terminal (copier et coller à partir d'un script à la terminale) et il fonctionne très bien; il attend une ENTRÉE pour être touché (juste comme une pause).
source d'informationauteur mohammadh montazeri
Vous devez vous connecter pour publier un commentaire.
Parce que votre script commence par
#!/bin/sh
plutôt que#!/bin/bash
vous ne sont pas la garantie d'avoir bash extensions (commeread -p
) disponible, et ne peut compter que sur conforme aux normes de fonctionnalité.Voir les normes pertinentes dans le document pour une liste des fonctionnalités de la garantie d'être présent dans
read
.Dans ce cas, vous souhaiterez probablement les deux lignes, pour faire de l'impression, et l'autre en faisant de la lecture:
Vous pouvez le faire avec la commande echo trop!:
il fonctionne sur raspbian