【问题标题】:How do I declare a variable in the shell, read input from the user and output the result? [closed]如何在 shell 中声明一个变量,从用户那里读取输入并输出结果? [关闭]
【发布时间】:2013-03-14 15:26:21
【问题描述】:

我是 UNIX 世界的新手。我们的老师让我们自己学习一切,我必须在课堂上错过一些东西。我只知道 C# 并且习惯于文本框。我有一个名为 likes 的文件,当我 cat 时会显示以下内容:

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

我在 bin 中创建了一个名为 drinks 的文件。在执行drinks 时,我需要以下内容作为我的输出。

$ drinks dave
dave likes to drink:

coors
bud

total number of beers dave likes to drink: 2

如果我运行drinks sally,输出需要匹配 sallys likes。

当执行文件到脚本时,如何声明一个变量以在 shell 上输入名称?

【问题讨论】:

    标签: shell unix arguments


    【解决方案1】:

    您可以通过变量$1(第一个参数)、$2(第二个参数)、...、${42}(第四个参数)将参数引用到 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.
    

    【讨论】:

    • 我是否必须为每个名称声明变量,或者我可以在饮料执行后创建一个读取“名称”的变量?
    • 如果是这样,我用什么关键字来阅读它,它被阅读了吗?
    • 无需声明shell变量。只需分配,例如name=$1 然后使用$name。如果要从标准输入读取变量,请使用echo Please enter the name,后跟read name
    • 非常感谢!这就是我所需要的......现在我可以 grep 和 awk
    • 好的,如果您的声誉允许,接下来就是投票并接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多