2013-03-25 45 views
-1

我是UNIX界的新手。我們的老師讓我們自己學習一切,我必須在課堂上錯過一些東西。我只知道C#並習慣於文本框。我有一個名爲likes文件,當我的貓它下面顯示:如何在shell中聲明變量,從用戶讀取輸入並輸出結果?

dave,coors 
mike,bud 
linda,coors 
gary,miller 
mike,miller 
sally,coors 
dave,bud 
sally,miller 

我已經創造了一個箱子文件名爲drinks。執行drinks時,我需要以下信息作爲輸出。

$ drinks dave 
dave likes to drink: 

coors 
bud 

total number of beers dave likes to drink: 2 

如果我運行drinks sally輸出需要匹配sallys喜歡。

如何在執行文件到腳本時聲明一個變量,該變量將在shell上輸入名稱?

回答

0

您可以通過變量$1(first arg),$2(second arg),...,${42}(第四十arg)引用參數到shell腳本。

在您的drinks腳本中,您可以使用$1引用名稱。

#!/bin/sh 
if test $# = 0; then 
    # User forgot to provide a name. 
    printf '%s\n' "usage: $0 name" >&2 
    exit 1 
fi 
printf '%s\n' "$1 likes to drink" 
# Rest of code left as an exercise. 
+0

我是否必須爲每個名稱聲明變量,或者是否可以在飲料執行後創建一個讀取「name」的變量? – 2013-03-25 08:50:51

+0

如果是這樣的話,我可以閱讀什麼關鍵字? – 2013-03-25 08:51:43

+0

不需要聲明shell變量。只需指定,例如'name = $ 1',然後使用'$ name'。如果你想從標準輸入讀入一個變量,使用'echo請輸入名稱,然後輸入'讀取名稱'。 – Jens 2013-03-25 09:10:46