2017-08-17 5 views
1

In einem busybox Shell-Skript test.sh (nicht bash), wenn ich 4 Parameter übergeben, wie kann ich den Wert von jedem von ihnen direkt erhalten. zum Beispiel

#!/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 

Wenn ich das Skript wie folgt aus:

$test.sh 1 2 "3 4" 5 

der Zweck ist, dass ich die NO3 string „3 4“ direkt in das Skript erhalten möchten. Wie kann ich es in der Busybox Shell tun

+0

POSIX-Shell hat keine Arrays. Ich wette, die Busybox Shell hat sie nicht. – Barmar

+0

Haben Sie versucht "$ 3" '? –

Antwort

1

Busybox Shell ist eine einfache, POSIX-konforme Shell (speziell ash, Almquist Shell). POSIX-Shell erfordert keine Arrays, und ich wette, ash hat sie nicht.

Aber ein Array für Skriptparameter nicht brauchen, sind sie $1, $2 in Variablen automatisch gesetzt, etc. So brauchen Sie nur:

param3=$3 

Vergewissern Sie sich, wenn Sie $param3 verwenden, die Sie setzen es in Anführungszeichen, so dass Sie aufgrund des Speicherplatzes keine Probleme haben (außer Sie wollen sie in separate Argumente aufteilen).

some_other_command "$param3" 
+0

Achten Sie auf den Platz im Argument ... –

Verwandte Themen