这个脚本每段谁能详细的说以一下?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
13378333
帖子: 322
注册时间: 2012-05-31 12:00

这个脚本每段谁能详细的说以一下?

#1

帖子 13378333 » 2012-06-23 15:56

比如语法,用法,作用是什么。。。这个脚本的作用是清楚PATH的重复变量
awk -F: '{ sep = "" for (i = 1; i <= NF; ++i) if (unique[$i] != 1) { out = out sep $i sep = ":" unique[$i] = 1 } print out}' <<< $PATH
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 这个脚本每段谁能详细的说以一下?

#2

帖子 lilydjwg » 2012-06-23 16:11

各种语法错误……
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: 这个脚本每段谁能详细的说以一下?

#3

帖子 cjxgm » 2012-06-23 19:16

代码: 全选

cjxgm@clans /tmp$ awk -F: '{ sep = "" for (i = 1; i <= NF; ++i) if (unique[$i] != 1) { out = out sep $i sep = ":" unique[$i] = 1 } print out}' <<< $PATH
awk: cmd. line:1: { sep = "" for (i = 1; i <= NF; ++i) if (unique[$i] != 1) { out = out sep $i sep = ":" unique[$i] = 1 } print out}
awk: cmd. line:1:            ^ syntax error
awk: cmd. line:1: { sep = "" for (i = 1; i <= NF; ++i) if (unique[$i] != 1) { out = out sep $i sep = ":" unique[$i] = 1 } print out}
awk: cmd. line:1:                                                                                  ^ syntax error
awk: cmd. line:1: { sep = "" for (i = 1; i <= NF; ++i) if (unique[$i] != 1) { out = out sep $i sep = ":" unique[$i] = 1 } print out}
awk: cmd. line:1:                                                                                                   ^ syntax error
:em06
LZ 可以自行 man awk 或 info awk
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 这个脚本每段谁能详细的说以一下?

#4

帖子 aerofox » 2012-06-23 23:39

只是少了几个分号,或者是原来是分几行的,被楼主合并成一行了。

代码: 全选

awk -F: '{ sep = ""; for (i = 1; i <= NF; ++i) if (unique[$i] != 1) { out = out sep $i; sep = ":"; unique[$i] = 1 } print out}' <<< $PATH
或者是这个样子的:

代码: 全选

awk -F: '{
    sep = ""
    for (i = 1; i <= NF; ++i)
        if (unique[$i] != 1) {
            out = out sep $i
            sep = ":"
            unique[$i] = 1
        }
        print out
}' <<< $PATH
回复