2013-03-25 53 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

相关问题