J’ai un script shell simple ci-dessous:
#!/bin/bash # Hadoop Clear readOnly hadoop = /opt/hadoop/bin/hadoop hadoop fs -rm -r /
Lorsque je lance le script dans le terminal de la même machine, tout fonctionne sans erreur. Maintenant, je veux appeler ce script à distance. Donc, à partir de mon programme java
, je fais un ssh
sur le serveur et appelle le script sous la forme: sh
.
J’ai une erreur en disant:
clearHadoop.sh: readOnly: not found clearHadoop.sh: hadoop not found
Une idée pourquoi cela se produit?
readonly
est un mot-clé bash, pas readOnly
.
Cela ressemble à l’ajout du chemin d’access à hadoop
dans $PATH
dans un fichier d’initialisation du shell qui n’affecte que les sessions interactives (et donc les sessions distantes).
Aussi sh
n’est pas /bin/bash
. Si vous voulez bash
utilisez bash
et non sh
.
Il y a une faute de frappe dans votre ligne readOnly. Au moins les bash que je viens d’essayer se sont plaints de lire O nly