Tcl/Expect中利用exec调用管道"|"和awk的注意事项
来源:互联网 发布:发送电子邮件的软件 编辑:程序博客网 时间:2024/06/05 03:33
Tcl/Expect中利用exec调用稍微复杂的shell命令时,经常会遇到一些小问题,常见的就是pipeline(|)和awk。
Tcl/Expect调用多个shell命令并使用|将其串接在一起时,需要注意的是必须在"|"前后加上空格" ",否则tcl/Expect会报奇怪的错。
Tcl/Expect调用awk命令时,需要把awk的' '中的命令改为用" ",并把$1, $2之类的变量改为/$1, /$2。
下面的ksh命令判断test_process是否在运行:
改为Tcl/Expect后,为:
另外, http://www.linuxquestions.org/questions/linux-software-2/ksh-tcl-173092/ 列出了一些ksh命令转换为tcl语句时经常遇到的问题(本人未曾验证过,请谨慎使用)。
Here's some conversion rules that I have proven, if anyone has any more info ( in any fashion ) , please advise.
-----------------------------------------------------------------
Rule: Remove "
-----------------------------------------------------------------
ksh: cat *.passwd 2>/dev/null | cut -d":" -f1 | sort | uniq
tcl: exec cat *.passwd 2>/dev/null | cut -d: -f1 | sort | uniq
-----------------------------------------------------------------
-----------------------------------------------------------------
Rule: Replace '(..$1..)' with "{../$1..}"
-----------------------------------------------------------------
ksh: ps -eaf | awk '(print $1}' | grep $1 2>&1
tcl: exec ps -eaf | awk "{print /$1}" | grep $user_login_to_test
-----------------------------------------------------------------
-----------------------------------------------------------------
Rule: Replace "..." with {...}
-----------------------------------------------------------------
ksh: grep "^$(user_login:" /etc/passwd /etc/shadow 2>&1
tcl: exec grep {^$user_login:} /etc/passwd /etc/shadow
-----------------------------------------------------------------
-----------------------------------------------------------------
Rule: Replace '...' with "..." or {...}
-----------------------------------------------------------------
ksh: grep 'Version' user.tcl
tcl: exec grep {Version} user.tcl
tcl: exec grep "Version" user.tcl
-----------------------------------------------------------------
还有就是http://wiki.tcl.tk/1039列出了使用exec的一些常见问题。
- Tcl/Expect中利用exec调用管道"|"和awk的注意事项
- Tcl中调用Awk命令
- Linux 中 TCL 和 Expect语法
- awk 中 利用shell命令和管道 捕捉返回内容
- Linux下Tcl和expect 的安装
- 安装 Tcl 和 Expect
- TCL/expect的使用
- Tcl call Awk and shell command-exec
- awk中调用shell变量注意事项
- 04.08 管道xargs和exec的区别
- expect中使用exec执行shell命令的方法
- expect中使用exec执行shell命令的方法
- TCL学习之子进程调用--open&exec
- android中利用webview调用网页上的js代码和注意事项
- Opensolaris: TCL和 Expect 编译与安装
- linux 下安装tcl 和expect程序
- Tcl中利用open函数创建pipe (about key word:open/exec/flush)
- linux awk和expect分析远程处理器
- C++外挂 读写游戏内存
- 易懂的动归DP详解
- Apache + Tomcat集群配置详解 (2)
- C++通过ASM写汇编代码
- When you say nothing at all
- Tcl/Expect中利用exec调用管道"|"和awk的注意事项
- Opencv2.1中的图像切分grabcut实现
- 安装perl模块和sort命令
- 【转】用IrisSkin2.dll美化你的WinForm
- No managed connection after pool limit reached
- Note for QC AMSS Build
- 分大塞弗
- JavaScript 的成功让人津津乐道
- 学习Windows API视频学习