LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1748|回复: 7

awk '{print $4}' $* 后面的$*是什么意思?? 谢谢

[复制链接]
发表于 2008-5-5 16:08:19 | 显示全部楼层 |阅读模式
awk '{print $4}' $*  后面的$*是什么意思?? 谢谢
发表于 2008-5-6 15:09:06 | 显示全部楼层
假设你读入的是abc def gh i j,那么$1="abc", $2 = "def", $3 = "gh", $4 = i, $5 = j, $0 = "abc def gh i j"
回复 支持 反对

使用道具 举报

发表于 2008-5-6 20:00:26 | 显示全部楼层
$* 表示所有的位置参数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-9 16:57:23 | 显示全部楼层
谢谢大家,现在我明白$*的涵义,但是为什么要在这个命令后面加一个$*呢??
回复 支持 反对

使用道具 举报

发表于 2008-5-25 22:27:56 | 显示全部楼层
Post by azhenfeixue;1847621
谢谢大家,现在我明白$*的涵义,但是为什么要在这个命令后面加一个$*呢??



就是将$*代表的一系列参数中的第四个取出来吧.
回复 支持 反对

使用道具 举报

发表于 2008-5-28 18:39:06 | 显示全部楼层

还没怎么明白$*的意思.看我的操作


  1. /tmp $ cat t1.txt
  2. aa bb cc dd ee
  3. 11 22 33 44 55
  4. /tmp $ awk '{print $4}' $* t1.txt
  5. dd
  6. 44
  7. /tmp $ awk '{print $4}' t1.txt
  8. dd
  9. 44

复制代码
回复 支持 反对

使用道具 举报

发表于 2008-5-28 20:36:49 | 显示全部楼层
Post by pro21ms4;1856087

  1. /tmp $ cat t1.txt
  2. aa bb cc dd ee
  3. 11 22 33 44 55
  4. /tmp $ awk '{print $4}' $* t1.txt
  5. dd
  6. 44
  7. /tmp $ awk '{print $4}' t1.txt
  8. dd
  9. 44

复制代码


看了你的例子,似乎没发现有什么区别啊???
回复 支持 反对

使用道具 举报

发表于 2008-6-1 10:03:14 | 显示全部楼层
Post by xtra2000;1856128
看了你的例子,似乎没发现有什么区别啊???
我的理解应该是这样:$* 是传送给脚本的位置参数,这是一般的说法,假单地说就是调用脚本或者是函数的时的给出参数。
在给出的 awk语句的位置,它应该表示的一个文件名。awk读如这个文件来处理
如文件 tt.txt为:
11 22 33 44
22 3 45 656

脚本dd.sh为
echo "awk"
awk '{print $4}' $*
echo "done"
运行时:
bash dd.sh  tt.txt
$*这里就是 tt.txt,实际上,这里可以是多个文件tt1.txt tt2.txt tt3.txt
意思应该是这样吧。这里的$*是否需要加引号,"$*",自己试试吧,按书上说法是一般使用是加引号的,如果不需要的话,也可以用$@代替$*
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表