如何创建一个bash脚本,在脚本执行的同一行接受用户输入?

时间:2011-06-07 02:22:34

标签: bash variables input

我想我比我想象的更像一个新手? :)

奇怪的是,我知道这是一个简单的答案。我知道我会因为这么简单而感到尴尬。但你可以从问题的标题中看出我无法弄清楚如何正确地问这个问题,这可能就是为什么我不能谷歌了...而且我知道有很多脚本可以做到这一点,但我现在似乎无法找到一个可以查看其来源的人。

编辑:bash脚本

所以这就是我想要完成的事情:

user@some-machine:~$ myscript variable

其中“变量”是用户标记的东西,它将成为脚本中的变量。我知道如何使用read命令获取用户输入,但我希望通过在一行中键入脚本的名称后跟变量来执行脚本。

我对此很啰嗦,因为我希望其他人稍后会通过谷歌搜索找到这个并得到答案。

提前致谢!

凯文

2 个答案:

答案 0 :(得分:3)

bash脚本中的第一个参数是$ 1,第二个是$ 2等...

答案 1 :(得分:1)

对于类似unix的getopts参数处理,您也应该检查-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