2013-09-10 106 views
1

我想運行一個bash程序,它需要幾個命令行輸入名稱,然後將一個數組作爲命令行輸入。bash程序讀取陣列

即,

#!/bin/bash 
name1=$1 
name2=$2 
my_array_input=("dog" "cat" "lion") 

在這個例子中我有NAME 1和NAME作爲輸入,my_array_input聲明並設定在腳本中。

在我的真實腳本中,我想也將name1和name2設置爲$ 1和$ 2,但我還希望能夠從用戶處獲取一個(未知大小/可變大小)my_array_input。用戶可以輸入不同長度的數組,並按照自己的意願輸入自己的動物名稱...

請注意,所有輸入都應該是命令行輸入。

是否有一個使用bash腳本執行此操作的技巧?

謝謝!

回答

5

Bash腳本(或類Unix操作系統中的任何程序)的參數只是一個字符串列表,因此沒有辦法完成的描述。

但是,您可以設置name1第一個參數,name2的第二個參數,並my_array_input所有後續參數:

#!/bin/bash 
name1="$1" 
name2="$2" 
my_array_input=("${@:3}") 

如果參數上面的腳本是foo bar dog cat lion,然後name1會是foo,name2將是bar,my_array_input將是陣列(dog cat lion)

+0

不錯的答案,完美地解決了我的問題! – Dnaiel