2011-06-07 60 views
1

我想我比我想象的更新鮮? :)如何在腳本執行的同一行創建一個接受用戶輸入的bash腳本?

奇怪的是,我知道這是一個簡單的答案。我知道我會爲這很簡單而感到尷尬。但是你可以從問題的標題中看到,我無法弄清如何正確地問這個問題,這可能是爲什麼我不能谷歌它......我知道有這麼多的腳本,但我目前似乎無法找到一個可以查看其來源的方法。

編輯:bash腳本

因此,這裏是我想要完成的任務:

[email protected]:~$ myscript variable 

哪裏「變數」的東西,對用戶的標籤將成爲腳本中的變量。我知道如何用read命令獲取用戶輸入,但我希望通過在一行中鍵入腳本名稱和變量來執行腳本。

我對此很囉嗦,因爲我希望別人稍後會通過谷歌搜索找到答案並獲得答案。

在此先感謝!

凱文

回答

3

在bash腳本中的第一個參數$ 1,第二個是2等等$ ...

+0

我可以在3分鐘內接受這個答案,謝謝老兄! – Kevin 2011-06-07 02:34:20

+0

我知道這很簡單,事實上我在bash的手冊頁中看到了這個,但我沒有正確閱讀它 – Kevin 2011-06-07 02:36:56

1

您應該檢查getopts也爲類Unix -x參數處理,例如

your_script -d some_d_arg -x file1.txt file2.txt 

如此區分您的腳本的參數和文件名。

基本的例子:

#!/bin/bash 
while getopts d:x arg 
do 
    case "$arg" in 
     d) darg="$OPTARG";; 
     x) xflag=1;; 
     ?) echo >&2 "Usage: $0 [-x] [-d darg] file ..."; exit 1;; 
    esac 
done 
shift $(($OPTIND-1)) 

for file 
do 
    echo =$file= 
done 
+0

嗨,我以前在其他腳本中看到過這種情況,並試圖拼湊它如何工作。我只是試過這個,很酷!謝謝。 – Kevin 2011-06-16 05:22:25