免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1469 | 回复: 8
打印 上一主题 下一主题

还有这段 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-27 23:42 |只看该作者 |倒序浏览
while [$# -ne 0]
do
case $1 in
-*)
opts="$opts $1"
;;
*)
args="$args $1"
;;
esac
shift
done
这段程序中opts="$opts $1"是什么意思,还有两个;;是固定格式吗?
另一个问题就是在shell函数中,函数最后的exit l中的参数l是什么意思?
命令ll又是什么意思?请大虾多多指教,谢谢!!!

论坛徽章:
0
2 [报告]
发表于 2003-02-28 01:41 |只看该作者

还有这段

...

> 这段程序中opts="$opts $1"是什么意思,还有两个;;是固定格式吗?

assignment statement

> 另一个问题就是在shell函数中,函数最后的exit l中的参数l是什么意思?

exit code

> 命令ll又是什么意思?请大虾多多指教,谢谢!!!

an alias of 'ls -l', i guess

论坛徽章:
0
3 [报告]
发表于 2003-02-28 08:31 |只看该作者

还有这段

原帖由 "红袖添香" 发表:
...

> 这段程序中opts="$opts $1"是什么意思,还有两个;;是固定格式吗?

assignment statement

assignment statement?能再具体点吗?把带参数的某个命令再赋给它自己本身?

论坛徽章:
0
4 [报告]
发表于 2003-02-28 09:37 |只看该作者

还有这段


  1. #!/usr/bin/ksh
  2. #aa.sh
  3. while [ $# -ne 0 ]
  4. do
  5.     case $1 in
  6.     -*)
  7.         opts="$opts $1"
  8.         ;;
  9.     *)
  10.         args="$args $1"
  11.         ;;
  12.     esac
  13.     shift
  14. done
  15. echo $opts
  16. echo $args
复制代码

代码的主要意思是把-*的参数和不是-*的参数分开,分别放到opts和args中
如:执行aa.sh -thello -pworld hello world
将输出:
-thello -pworld
hello world

论坛徽章:
0
5 [报告]
发表于 2003-02-28 09:42 |只看该作者

还有这段

原帖由 "lb_20016" 发表:

assignment statement?能再具体点吗?把带参数的某个命令再赋给它自己本身?


i think,
opts = a
$1 = c

opts ="$opts $1"


echo $opts

%a c

论坛徽章:
0
6 [报告]
发表于 2003-02-28 16:03 |只看该作者

还有这段

原帖由 "红袖添香" 发表:
...

> 这段程序中opts="$opts $1"是什么意思,还有两个;;是固定格式吗?

assignment statement

assignment statement中文是什么意思啊,opts="$opts $1"这里我还是不太懂,能解释得再清楚一点吗?

论坛徽章:
0
7 [报告]
发表于 2003-02-28 16:27 |只看该作者

还有这段

请高人作一下 解释.我看了也头晕!

论坛徽章:
0
8 [报告]
发表于 2003-02-28 17:15 |只看该作者

还有这段

在opts="$opts $1"中,"$opts $1"是固定的输出参数的命令格式吗?能把双引号改成单引号吗?

论坛徽章:
0
9 [报告]
发表于 2003-02-28 18:48 |只看该作者

还有这段

[quote]原帖由 "lb_20016"]在opts="$opts $1"中,"$opts $1"是固定的输出参数的命令格式吗?能把双引号改成单引号吗?[/quote 发表:
1.方括弧旁边要加上空格
2. $1代表第1个参数,$2代表第2个参数,余此类推;$# 代表参数个数
每做一次shift,$#递减1,并且所有的参数左移,也就是原来的$2变成现在的$1,余此类推.
3. 所以正如biansj所讲,此代码是想将两类参数分开:
    带-号的赋给opts;不带-号的赋给args.
4. shell中经常需要判断上一个shell或上一条命令的执行情况,$?即存放此值,一般0表示执行正确,非0表示其他情况。所以exit 后跟一个值退出后,此时根据 $? 就能知道上一个shell的执行情况。
5. 假定有两个shell: test1.sh test2.sh,则 test1.sh || test2.sh意思如下: 当test1.sh的返回值为非0 则继续做test2.sh; 当test1.sh的返回值为0时则不做test2.sh。
test1.sh && test2.sh与此相反.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP