Pageferry
Workflows

Exécuter un script Bash, de l'ouverture du dossier au code de sortie

03
Exécuter un script

Lancer un script Bash avec des arguments dans WSL ou via SSH

Un script Bash peut être démarré de trois façons : `bash script.sh arg1 arg2`, `./script.sh` après `chmod +x`, ce qui fonctionne grâce à la ligne shebang, ou via le builtin `exec`, qui remplace le shell et ne retourne jamais. La première forme est la plus simple pour débuter, car elle ne nécessite aucun changement de permission. Shell exécute la commande dans l'environnement que vous avez choisi, à savoir WSL sur votre PC ou un système Linux que vous possédez et auquel vous accédez via SSH, et la carte dans le chat affiche la sortie réelle ainsi que le code de sortie. Vous décidez des arguments, vous pouvez donc tester le cas normal et le cas d'échec en une seule conversation. On demande souvent quelle forme choisir : utilisez `bash script.sh` pendant vos tests, car cela fonctionne même si le fichier n'a pas la permission d'exécution, et passez à `./script.sh` une fois le script finalisé et commençant par la ligne shebang. Quelle que soit la forme utilisée, le statut de sortie est le même nombre, de 0 à 255, et 0 signifie toujours que le script s'est terminé avec succès.

01

Ouvrir le dossier

Choisissez le dossier contenant votre script comme dossier de travail ; les outils de fichiers tels que read_file et grep fonctionnent à l'intérieur. Les outils de fichiers fonctionnent dans ce dossier, tandis que Shell, web et SSH n'y sont pas limités.

02

Choisir un mode d'approbation

Utilisez Ask first pour voir chaque modification sous forme de diff, ou Plan only pour lire un plan d'abord. Auto-run agit immédiatement. Ask first ne fait une pause qu'avant les actions qui modifient quelque chose.

03

Demander une exécution

Décrivez l'exécution en mots simples, par exemple : exécutez le script avec l'argument test. Précisez WSL ou votre serveur si vous disposez des deux. Nommez le script et ses arguments avec exactitude.

04

Lire le résultat

Ouvrez la carte pour voir la sortie et le code de sortie réel, puis acceptez ou rejetez toute modification. Un nombre non nul est une information. Exécutez-le à nouveau après chaque modification acceptée. Comparez-le avec le résultat attendu.

Un petit script d'exemple

greet.sh
#!/usr/bin/env bash
# greet.sh - print a greeting a few times
set -eu
if [ "$#" -lt 1 ]; then
  echo "Usage: $0 NAME [COUNT]" >&2
  exit 2
fi
name="$1"
count="${2:-1}"
for i in $(seq 1 "$count"); do
  echo "Hello, $name ($i)"
done
exit 0

greet.sh s'arrête avec une ligne d'aide et le code de sortie 2 lorsque le nom est manquant, accepte un compteur optionnel avec une valeur par défaut de 1, et n'affiche que des salutations dans une boucle. Lisez-le une fois avant de l'exécuter : il n'y a pas de sudo, pas de téléchargement et rien qui déplace ou supprime un fichier, il est donc inoffensif de le tester sur n'importe quelle machine que vous possédez. Ligne par ligne : la shebang nomme l'interpréteur, `set -eu` arrête le script en cas d'erreur ou de variable non définie, la vérification de $# compte les arguments, et la boucle for n'affiche que des échos.

Exécuter un script en quatre petites étapes

Créer le fichier script

Commencez par un dossier de travail vide. Demandez à l'agent d'écrire l'exemple ci-dessus, et write_file crée greet.sh dans ce dossier. Ouvrez la carte et lisez le fichier ligne par ligne : la première ligne est la shebang qui nomme l'interpréteur, `set -eu` arrête le script en cas d'erreur ou de variable non définie, et la vérification de $# protège la suite en cas de nom manquant. Sous Ask first, le nouveau fichier attend votre accord avant d'être écrit. Rien n'a encore été exécuté. La branche usage de ce script choisit 2 pour une mauvaise utilisation, ce qui est une convention courante. Acceptez le fichier uniquement lorsque vous comprenez chaque ligne, et si ce n'est pas le cas, demandez à l'agent de l'expliquer. Une modification rejetée laisse le dossier inchangé.

L'exécuter et lire le code de sortie

Les personnes qui recherchent « bash execute script » veulent généralement une seule ligne : `bash greet.sh test`. Demandez à l'agent de l'exécuter, et Shell lance la commande dans l'environnement de votre chat, tel que WSL, et renvoie la sortie réelle ainsi que le code de sortie réel. Développez la carte pour voir la sortie complète. Ensuite, demandez la même exécution sans l'argument, et vous devriez voir la ligne d'aide et le code de sortie 2. Le code de sortie pour les applications CLI est un nombre de 0 à 255 que le lecteur lit, et 0 signifie succès. Le code de sortie 127 signifie qu'une commande n'a pas été trouvée et 126 signifie qu'un fichier ne peut pas être exécuté, donc ces deux nombres indiquent une faute de frappe, un programme manquant ou une permission d'exécution manquante.

Lire les arguments à l'intérieur du script

read_file affiche le script et grep trouve où $1 et $2 sont utilisés, vous pouvez ainsi vérifier que chaque argument a une valeur par défaut ou un message d'erreur. Voici comment analyser les arguments optionnels : le script boucle avec getopts, et avec une ou deux valeurs, les plain $1 et ${2:-1} suffisent. Les alias avec des arguments ne se comportent pas comme des fonctions, car un alias ne remplace que le mot tapé par du texte, utilisez donc une fonction lorsque des valeurs doivent être placées au milieu. Demandez à l'agent de modifier une chose, par exemple la valeur par défaut du compteur, et lisez le diff que edit_file affiche. Ensuite, exécutez à nouveau le script et comparez le nouveau code de sortie avec l'ancien. Plan only peut lister les paramètres que le script comprend sans rien exécuter.

Exécuter le même script sur un serveur que vous possédez

Les mêmes étapes fonctionnent lorsque l'environnement de travail est un système Linux que vous possédez, accessible via SSH. Les outils de fichiers continuent de fonctionner dans le dossier de travail du chat, tandis que les commandes Shell s'exécutent dans l'environnement que vous avez choisi, vérifiez donc à quel environnement fait référence une carte. Le builtin exec, que les gens recherchent sous « bash exec script », remplace le shell par une autre commande et ne retourne jamais, donc rien après lui ne s'exécute et le code de sortie est celui de la nouvelle commande. Gardez une copie avant qu'un script ne déplace ou ne supprime des fichiers, exécutez-le avec echo d'abord comme essai à blanc, et n'utilisez que des machines que vous êtes autorisé à administrer. Lisez la carte finale avant de fermer le chat. Lorsque vous transmettez toutes les valeurs à une autre commande, écrivez "$@" entre guillemets doubles afin que chaque valeur conserve sa forme.

Pageferry pour Windows

Testez un script Bash sur votre propre machine

Télécharger Pageferry ↗