- 浏览: 90798 次
- 性别:
- 来自: 杭州
文章分类
最新评论
http://blog.sina.com.cn/s/blog_63092e670100r4th.html
1. '' 单引号截断,注意:如果变量的值有空格的话,必须要加双引号""(参见上面的链接),否则空格会导致 cmd空格option空格params
2.ENVRION["varName"]
3.-v传递参数
GOOD:
http://www.cnblogs.com/chengmo/archive/2010/10/03/1841753.html
1. 格式如:awk ‘{action}’ 变量名=变量值 ,这样传入变量可以在action中获得值,但不能在BEGIN{}中引用
var1="hahah"
echo |awk 'BEGIN{print "Begin:v1="v1} {print "ActionBody:v1="v1}' v1="$var1"
输出结果
Begin:v1=
ActionBody:v1=hahaha
2.格式如:awk –v 变量名=变量值 [–v 变量2=值2 …] 'BEGIN{action}’ 注意:用-v 传入变量可以在3种类型的action 中都可以获得到,但顺序必须要在 action前面。
echo |awk -v v1="haha" 'BEGIN{print "Begin:v1="v1} {print "ActionBody:v1="v1}'
格式如:awk ‘{action}’ 变量名=变量值 ,这样传入变量,可以在action中获得值。 注意:变量名与值放到’{action}’后面。
[chengmo@localhost ~]$ echo | awk 'BEGIN{print test}' test="$test"
这种变量在:BEGIN的action不能获得。
awk -f "query.awk" idnums=10 test.dat
必须要在文件名前面
格式如:awk –v 变量名=变量值 [–v 变量2=值2 …] 'BEGIN{action}’
注意:用-v 传入变量可以在3中类型的action 中都可以获得到,但顺序在 action前面。
awk -v idnums=10 -f "query.awk" test.dat
1.单引号 双引号的区别
var1="hello"
awk 'script' => 会把awk scrpit 原封不动的传递给AWK解释器
awk '{print $var1}' =>ERROR, $var1是shell变量,无法直接引用
awk "script" => 先把awk script解析成 String 形式的 脚本(包括引用shell变量), 再传递给AWK解释器
awk "{print $var1}" =>OK, 先把$var1是替换成shell变量的值,解析的结果"print hello" 再传递给AWK解释器
awk '{print $SHELL-VAR}' SHELL-VAR的值来自shell变量
测试如下:
>index=2
>echo $index ##输出是2
>echo "a b c d" | awk {'print $index'} ERROR
var是shell变量,而awk是Linux中独立于shell的一个工具。在awk中如果要解析shell变量,需要将变量拿到awk的作用域外面来,即,先关闭awk的单引号,引用变量 后再次打开。 摘自 http://zhidao.baidu.com/question/273992965.html |
>echo "a b c d" | awk {'print $'$index'}'
发表评论
-
shell运算符
2014-07-30 14:25 580<div class="iteye-blog ... -
tar备忘
2013-08-09 20:49 638http://www.cnblogs.com/qq78292 ... -
shell变量替换
2013-02-05 20:32 722MARK //TODO http://ww ... -
shell的条件判断语句写法
2013-02-05 20:26 733参考http://longzxr.blog.sohu.com ... -
shell元字符 metadata
2013-02-05 20:09 750MARK //TODO http://blog.csd ... -
shell中的括号 () (()) [] [[]] {}
2013-02-05 20:01 1051MARK //TODO 待验证 http://www. ... -
shell字符串操作(替换,截取)
2013-02-05 15:11 874A='abc.sina.txt'; echo ${A ... -
awk分隔符
2013-02-04 20:12 1403分隔符,可以用正则来表示 echo 'a-b.c' | a ... -
xargs用法
2012-10-30 19:52 1044path=/home/xx/data/xx ls pa ... -
FORK BOMB
2012-06-28 14:22 1116http://blog.csdn.net/ninthing/a ... -
source/exec/fork
2012-06-07 16:07 734http://blog.csdn.net/zhuy ... -
#!/bin/bash
2012-06-07 16:03 2653http://www.cnblogs.com/ ... -
SHELL 命令行解释执行
2012-06-06 11:46 894//TODO 参考 Unix S ... -
SHELL数组
2012-04-17 10:19 703http://bbs.chinaunix.net/thread ... -
time() 测试shell脚本/cmd的性能
2012-03-20 00:15 825time($cmd) -
shell 逻辑表达式 运算符
2012-03-20 00:02 834转自 http://www.cnblogs.com/cheng ... -
shell字符串处理
2012-02-29 01:19 8021.待实践 http://www.blogjava.net/ ... -
authorized_keys 文件的权限
2012-02-17 11:26 1860必须是 600,700 ??? (其组,其他人 必须是0,0) ... -
linux 查看CPU等硬件信息
2012-02-12 22:08 996http://www.oschina.net/question ... -
AWK数组的排序
2012-01-12 00:12 946//TODO asorti asort
相关推荐
- 在使用 AWK 时,需要注意变量的作用域。 - 对于复杂的逻辑处理,可以考虑使用脚本文件。 - 需要确保 AWK 版本兼容性,不同版本的 AWK 可能存在差异。 以上是关于 AWK 应用和讲解步骤的主要知识点,包括基础语法、...
- **变量与参数**:理解变量的作用域、类型以及如何进行赋值、替换等操作至关重要。Shell变量通常是无类型的,这意味着它们可以存储不同类型的数据而无需显式声明类型。 - **引用与转义**:正确处理变量引用和特殊...
在Linux运维中,awk、sed和grep被称为“文本处理三剑客”,尤其在编写Shell脚本自动化任务时发挥着重要作用。awk可以从标准输入、文件或者其他命令的输出中获取数据,并通过自定义函数和动态正则表达式等功能,支持...
在 shell 中,变量可以根据作用域分为几种类型: - **局部变量**:在脚本或命令中定义,仅在当前 shell 实例中有效。 - **环境变量**:所有程序都能访问这些变量,它们在环境中对所有进程可见。 - **shell 变量**:...
5. **函数和脚本**:学习如何编写Shell脚本,包括函数的定义与调用,以及脚本的执行权限、变量作用域等。 6. **重定向和管道**:了解如何将输出重定向到文件(>`、>>`),输入重定向(),以及使用管道(|)连接...
局部变量仅在声明它们的作用域内有效,而全局变量在整个脚本中都可访问。变量的查看和取消使用特定命令进行操作。 6. 表达式 Shell中的表达式包括测试语句、条件表达式和计算表达式。测试语句用于条件测试,条件...
4. 函数编写:掌握如何在Shell脚本中定义和调用函数,以及参数传递和局部变量的作用域。 5. 脚本调试和测试:学习使用调试工具和方法对脚本进行错误检测和问题诊断,以及如何编写测试用例确保脚本的稳定性和可靠性...
3. **Shell变量**:包括环境变量(如PATH、HOME)和用户定义变量,如何声明、设置、读取和删除变量,以及特殊变量(如$#、$*、$$等)的用法。 4. **Shell流程控制**:涵盖条件语句(if-else、case)和循环结构(for...
Shell变量的使用、变量引用、双引号和单引号的区别、注释的使用是脚本编写的基础。掌握这些基础之后,学习者可以进行简单的脚本编写。 在字符串处理方面,Shell提供了丰富的操作符,例如使用${}进行字符串操作。...
9. **环境变量与作用域** - **环境变量**:如`PATH`,`HOME`,影响整个Shell会话的变量。 - **局部变量**:只在函数内部或特定代码块中有效的变量。 10. **脚本案例与实战** - **日志管理**:定时清理旧日志,...
理解Bash中的变量作用域至关重要,特别是涉及到循环和子shell时。通常,局部变量只在其定义的函数或命令组(如`{...}`)内有效,而全局变量在整个脚本中都可用。在循环中,如果变量未声明为局部变量,则默认为全局...
- **局部变量**:仅在当前作用域内有效,一般在函数内部声明。 3. **条件语句**: - `if...fi`结构用于条件判断,如`if [ condition ]; then commands; fi`。 - `case...esac`结构提供多分支选择,如`case $var ...
函数部分,则介绍了如何创建和使用shell函数,局部变量的作用域问题,以及不使用局部变量的递归函数。 高级主题部分包括了正则表达式、通配符、子shell、受限shell、进程替换、数组和/dev与/proc的特殊文件系统。...
- **显示特殊域**至**使用sed过滤行**:涵盖了如何使用awk、expr和sed等工具进行文本处理,包括域提取、模式匹配、字符串操作等。 #### 第25章 在适当的位置编辑文件 - **使用ed进行简单的查找和替换**:介绍了如何...
Shell脚本编程是本书的重点,它涵盖了脚本的结构、变量作用域、参数传递、调试技巧等内容。通过编写脚本,用户可以自动化日常的重复任务,比如定期备份、日志分析等。同时,本书还会介绍一些高级主题,如陷阱(traps...
"025第五部分高级shell编程技巧:深入讨论.PDF"可能包含更复杂的主题,如函数、条件表达式、循环、流程控制(if-else、for、while等),以及函数和脚本之间的变量作用域。 "026shell 工具.PDF"可能介绍了各种Unix/...
理解变量的作用域和生命周期对于编写健壮的脚本至关重要。 接着,深入探讨控制结构,如if...else条件语句用于根据不同的条件执行不同的代码块,while和for循环则用于重复执行任务。学会如何有效地使用这些控制结构...
- **局部变量**:理解函数内部的变量作用域,避免全局变量污染。 5. 文件和目录操作 - **文件操作**:掌握创建、删除、移动和复制文件的命令,如`touch`、`rm`、`mv`、`cp`。 - **目录操作**:学习`mkdir`、`...
首先,`shell变量比较.odt`很可能是一个关于Shell变量比较的文档,可能包含了如何声明、赋值以及比较不同类型的Shell变量,如局部变量、环境变量和出口变量。在Shell脚本中,理解变量的生命周期和作用域对于编写高效...
6. **深入讨论**(025深入讨论.pdf):这部分可能涉及了更高级的主题,如管道(pipe)、重定向(redirect)、子Shell、变量作用域、环境变量以及错误处理等,这些都是编写复杂脚本时需要理解的关键概念。 7. **运行...