2017-08-17 8 views
1

busyboxシェルスクリプトtest.sh(bashではありません)では、4つのパラメータを渡すと、それぞれの値を直接得ることができます。私はこのようなスクリプトを実行した場合の例

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

のために:

$test.sh 1 2 "3 4" 5 

目的は、私は、スクリプト内で直接NO3文字列「3 4」を取得したいということです。ビジーボックスシェルでどうすればいいですか?

+0

POSIXシェルには配列がありません。私はBusyboxのシェルが持っていないことを賭けるでしょう。 – Barmar

+0

'' $ 3 ''を試しましたか? –

答えて

1

Busyboxシェルは単純なPOSIX準拠のシェルです(具体的にはash、Almquistシェル)。 POSIXシェルには配列は必要なく、ashには配列がありません。

しかし、あなたはあなただけの必要があるので、それらは自動的などの変数$1$2に入れている、スクリプトパラメータの配列を必要としません:あなたは$param3を使用する場合

param3=$3 

はあなたが置くことを確認してくださいそれは二重引用符で囲まれているので、スペースのために問題に遭遇することはありません(別々の引数に分割しない限り)。

some_other_command "$param3" 
+0

引数のスペースに注意してください... –

関連する問題