2017-08-17 9 views
1

Dans un script shell busybox test.sh (pas bash), si je lui passe 4 paramètres, comment puis-je obtenir directement la valeur de chacun d'eux. par exemple

#!/bin/sh 

args=("[email protected]") 
param3=${args[2]} #I want to get the value of the parameter 3, it works in bash 
        #but it does not work in busybox shell 

Si je lance le script comme ceci:

$test.sh 1 2 "3 4" 5 

le but est que je veux la chaîne de NO3 « 3 4 » directement dans le script. Comment puis-je le faire dans le shell busybox

+0

Le shell POSIX n'a ​​pas de tableaux. Je parie que le shell Busybox ne les a pas. – Barmar

+0

Avez-vous essayé '" $ 3 "'? –

Répondre

1

Le shell Busybox est un simple shell compatible POSIX (en particulier, ash, Almquist Shell). POSIX shell ne nécessite pas de tableaux, et je parie ash ne les a pas.

Mais vous n'avez pas besoin d'un tableau pour les paramètres de script, ils sont automatiquement mis en variables $1, $2, etc. Vous avez juste besoin:

param3=$3 

Assurez-vous que lorsque vous utilisez $param3 que vous mettez il entre guillemets, de sorte que vous ne rencontriez pas de problèmes dus à l'espace (à moins que vous ne vouliez les séparer en arguments séparés).

some_other_command "$param3" 
+0

Attention à l'espace dans l'argument ... –