2011-06-07 62 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