Chinaunix

标题: shell 获取参数-----简单问题不简单。求解 [打印本页]

作者: sagasword    时间: 2010-11-12 11:15
标题: shell 获取参数-----简单问题不简单。求解
写了bash  shell一个脚本如 get.sh -a  aaa -b bbb -c ccc   dddd

脚本里面如何才能获取dddd的内容 ,使用这个脚本的不一定会把dddd放在最后一个参数

如  get.sh -a  aaa    dddd  -b bbb -c ccc
     get.sh    dddd   -a  aaa    -b bbb -c ccc
其实就是类似很多命令都可以这样:grep,什么的


                                    shell脚本新手
作者: dibug    时间: 2010-11-12 12:09
不懂。帮顶
作者: nuclearxin    时间: 2010-11-12 12:27
关于 getopt 处理参数的问题 难道你就没看到。。。。。这个帖子
看完了就解决了
作者: L_kernel    时间: 2010-11-12 15:37
http://bbs.chinaunix.net/viewthread.php?tid=919781
http://bbs.chinaunix.net/viewthread.php?tid=967883
也许这两个链接可以帮到你的。
作者: ganlan    时间: 2010-11-12 15:44
转自ABS
Example 9-6 arglist:通过$*和$@列出所有的参数
################################Start Script#######################################
1 #!/bin/bash
2 # arglist.sh
3 # 多使用几个参数来调用这个脚本,比如"one tow three".
4
5 E_BADARGS=65
6
7 if [ ! -n "$1" ]
8 then
9   echo "Usage: `basename $0` argument1 argument2 etc."
10   exit $E_BADARGS
11 fi  
12
13 echo
14
15 index=1          # 初始化数量.
16
17 echo "Listing args with \"\$*\":"
18 for arg in "$*"  # 如果"$*"不被""引用,那么将不能正常地工作
19 do
20   echo "Arg #$index = $arg"
21   let "index+=1"
22 done             # $* sees all arguments as single word.
22 done             # $* 认为所有的参数为一个单词
23 echo "Entire arg list seen as single word."
24
25 echo
26
27 index=1          # 重置数量.
28                  # 如果你忘了这句会发生什么?
29
30 echo "Listing args with \"\$@\":"
31 for arg in "$@"
32 do
33   echo "Arg #$index = $arg"
34   let "index+=1"
35 done             # $@ 认为每个参数都一个单独的单词.
36 echo "Arg list seen as separate words."
37
38 echo
39
40 index=1          # 重置数量.
41
42 echo "Listing args with \$* (unquoted):"
43 for arg in $*
44 do
45   echo "Arg #$index = $arg"
46   let "index+=1"
47 done             # 未""引用的$*把参数作为独立的单词.
48 echo "Arg list seen as separate words."
49
50 exit 0
################################End Script#########################################
作者: dgww    时间: 2010-11-12 17:22
既然你需要读取文件dddd,那么为脚本多加上一个-f选项,用于读取文件不就可以了吗?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2