expect脚本如何让eclipse unix 换行符符变为Unix格式eclipse unix 换行符符

VC编辑器,如何把unix换行变成windows换行?
[问题点数:40分,结帖人ererei]
VC编辑器,如何把unix换行变成windows换行?
[问题点数:40分,结帖人ererei]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2009年7月 总版技术专家分月排行榜第二2009年3月 总版技术专家分月排行榜第二2009年1月 总版技术专家分月排行榜第二2005年7月 总版技术专家分月排行榜第二2005年5月 总版技术专家分月排行榜第二2005年3月 总版技术专家分月排行榜第二
2015年2月论坛优秀版主
2014年11月 VC/MFC大版内专家分月排行榜第二2014年1月 VC/MFC大版内专家分月排行榜第二2013年10月 VC/MFC大版内专家分月排行榜第二2013年9月 VC/MFC大版内专家分月排行榜第二2013年6月 VC/MFC大版内专家分月排行榜第二2013年4月 VC/MFC大版内专家分月排行榜第二2012年6月 VC/MFC大版内专家分月排行榜第二
2015年7月 VC/MFC大版内专家分月排行榜第三2012年10月 VC/MFC大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。您所在的位置: &
在Linux下灵活使用expect脚本的小窍门
在Linux下灵活使用expect脚本的小窍门
对于喜爱自动化的Linux系统管理员而言,一定是用过expect这个命令行工具。Expect被广泛应用于交互式操作和自动化测试的场景之中,尤其适用于需要对多台服务器执行相同操作的环境中,可以大幅度提高系统管理人员的工作效率。本文详细讲述了如何通过不同的命令行选项来执行一个expect脚本。
【51CTO精选译文】编者按:对于喜爱自动化的Linux系统管理员而言,一定是用过expect这个命令行工具。Expect 是由 Don Libes 基于 Tcl 语言开发的,并被广泛应用于交互式操作和自动化测试的场景之中,它尤其适用于需要对多台服务器执行相同操作的环境中,可以大幅度提高系统管理人员的工作效率。本文是最近更新的一篇技术分享文章,其中详细讲述了如何通过不同的命令行选项来执行一个expect脚本,具体有什么用,大家可以自由发挥想象力。
本文假设您对expect的基本使用方法已经有一定的了解。
如果你是expect脚本语言的新手,可以首先从我们的开始。
1,使用&-c&选项,从命令行执行expect脚本
expect可以让你使用&-c&选项,直接在命令行中执行它,如下所示:
$ expect -c 'expect &\n& {send &pressed enter\n&}
pressed enter
如果你执行了上面的脚本,它会等待输入换行符(\n)。按&enter&键以后,它会打印出&pressed enter&这个消息,然后退出。
2,使用&-i&选项交互地执行expect脚本
使用&-i&选项,可以通过来自于标准输入的读命令来交互地执行expect脚本。如下所示:
$ expect -i arg1 arg2 arg3
expect1.1&set argv
arg1 arg2 arg3
expect1.2&
正常情况下,当你执行上面的expect命令的时候(没有&-i&选项),它会把arg1当成脚本的文件名,所以&-i&选项可以让脚本把多个参数当成一个连续的列表。
当你执行带有&-c&选项的expect脚本的时候,这个选项是十分有用的。因为默认情况下,expect是交互地执行的。
3,当执行expect脚本的时候,输出调试信息
当你用&-d&选项执行代码的时候,你可以输出诊断的信息。如下所示:
$ cat sample.exp
# !/usr/bin/expect -fexpect &\n&;send &pressed enter&;$ expect -d sample.expexpect version 5.43.0argv[0] = expect& argv[1] = -d& argv[2] = sample.expset argc 0set argv0 &sample.exp&set argv &&executing commands from command file sample.exp
expect: does && (spawn_id exp0) match glob pattern &\n&? no
expect: does &\n& (spawn_id exp0) match glob pattern &\n&? yes
expect: set expect_out(0,string) &\n&
expect: set expect_out(spawn_id) &exp0&
expect: set expect_out(buffer) &\n&
send: sending &pressed enter& to { exp0 pressed enter}
4,使用&-D&选项启动expect调试器
&-D&选项用于启动调试器,它只接受一个布尔值的参数。这个参数表示提示器必须马上启动,还是只是初始化调试器,以后再使用它。
$ expect -D 1 script
&-D&选项左边的选项会在调试器启动以前被处理。然后,在调试器启动以后,剩下的命令才会被执行。
$ expect -c 'set timeout 10' -D 1 -c 'set a 1'
1: set a 1
5,逐行地执行expect脚本
通常,expect会在执行脚本之前,把整个脚本都读入到内存中。&-b&选项可以让expect一次只读取脚本中的一行。当你没有写完整个脚本的时候,这是十分有用的,expect可以开始执行这个不完整的脚本,并且,它可以避免把脚本写入到临时文件中。
$ expect -b
6,让expect不解释命令行参数
你可以使用标识符让expect不解释命令行参数。
你可以像下面这样的读入命令行参数:
print_cmdline_args.exp
#!/usr/bin/expect
puts 'argv0 : [lindex $argv 0]';
puts 'argv1 : [lindex $argv 1]';
当执行上面的脚本的时候,会跳过命令行选项,它们会被当成参数(而不是expect选项),如下所示:
$ expect print_cmdline_args.exp -d -c
argv0 : -d
argv1 : -c
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
Linux命令行吸引了大多数Linux爱好者。一个正常的Linux用户一般
本期重点推荐:转角遇到Zabbix:企业级分布式系统监控部署
北京时间10月18日,Ubuntu 13.10(代号为Saucy Salama
回顾PC漫长的发展史,如果让你想一个关键词,我相信很
日晚7点整,微软公司如约发布了Windows 8
本书分为8章,首先介绍ASP.NET的开发技巧和重点技术,尤其针对初学者如何快速入门并掌握ASP.NET编程做了深入浅出的介绍;然后重
51CTO旗下网站查看:30556|回复:7
朋友们我想问下,linux 中 我 输出几句话 我想 用换行符 换行 这样 能输出自己 想要的格式&&
还有 就是&&linux 中 空格的&&代表符号是什么 比如 html 是&nbsp&&
C 语言 是 \n&&换行&&!
助理工程师
空格就是空格,用引号引起来就行了。:D
谢谢,我现在上去看看
没有用的啊,我尝试过了不行的 ,比如 我要每过2分钟 在&&/root 目录下新建 一个 “ bak”这种名字的目录&&中间的空格 怎么 在 ctrontab -e&&中 编写输出 :)
(25.23 KB)
我用你的 方法 在空格前面 加了个\但是也没效果 计划不执行 !
助理工程师
试试 date +&%Y-%m-%d %H:%M&
:(bofu16):
助理工程师
楼上正解。请楼主尝试。
shell脚本中的换行符是 \n
空格即是空格 比如echo “ ”&&
这样就输出一个空格了。
把空格用双引号引起来就行了shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题) - CSDN博客
shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案)
在notepad上设置:编辑-&档案格式转换-&转换为UNIX格式
另外我觉得在自己使用的编辑器上显示回车、换行符也许是个好的习惯吧
有关于回车,换行的故事:转送门在这里,猛击吧!
关于回车换行问题,我的”痛苦“经历(传递的字符串参数有\r字符)
原由:我需要cygwin下运行shell 脚本;脚中调用python子脚本且同时传递参数
我的脚本内容是这样的(调用的python脚本中会打印传递给他的参数)
===============================================
# ============================
# funcion:
# autor:luogw
# usage(in cygwin): ./checkCompatibility checedFileName(.csv format) newFileName(.csv format,Added Compatibility problem)
# ============================
tempFileName='temp4Compatibility.csv'
rm -f temp4Compatibility.csv
python ./cleanPath.py $1 $tempFileName
python ./checkNew.py temp4Compatibility.csv $2 filter.csv filter_key.csv
rm -f $tempFileName
================================================
运行情况如下:大家请注意 tempFileName的值,传给python脚后!添加了\r\r
我们先看看脚本windows文档格式与unix文档格式载图,显示回车换行符;notepad的设置 : 视图-&显示字符-&显示所有字符
windows格式(出问题时脚本的状态)
unix格式(ok的状态)
个人理解:
在cygwin/类unix环境下运行的脚本,如果shell脚本是于windows文档格式保存的(有回车,换行符)
因为unix环境下shell会把回车符&\r&当普通的字符处理,故会造成字符串追加。
另外windows文档格式的shell脚本,在linux/unix环境下运行时是会出现:bash: ./checkCompatibility.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录 (解决方案就是去掉回车了,转给unix文档格式)
但是cygwin环境下是可以正常运行的,很变恋吧,但想想它本身实现就是在windows下提供类unix的运行环境,它能处理windows文档格式的shell脚本也是不可厚非的事
只是得需要注意我今天所遇到的问题Linux上如何进行换行符转换_百度知道
Linux上如何进行换行符转换
  (一)  最近在学习shell编程,可是在《Linux程序设计》指定的网站上下载了源码,使用的时候却一直出问题。提示:”bash: ./here1:/bin/sh^M:损坏的解释器: 没有该文件或目录“。之后用vi编辑器打开文件,发觉每一行的最后有浅蓝色的字符'^M'。才知道了问题所在  其实并没什么奇怪的,出现这种错误的原因是因为Linux和Windows文本文件的行结束标志不同。在Linux中,文本文件用&&(0a)表示回车换行,而Windows用&\r&(0d 0a)表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把&\r&转化成&&,unixtodos把&&转化成&\r&。  命令dos2unix和unix2dos的使用非常简单,格式为:dos2unix filename  如果想更多的了解这两个命令,可以查看手册:  man dos2unix  它会告诉你dos2unix的高级用法  (二)  Ubuntu下默认没有安装dos2unix工具,而且也没有一个叫这个名字的工具(我在solaris里用过dos2unix,不知道为啥Ubuntu没有)。但是有一个替代工具——tofrodos , 下面就说一下它的安装和使用。  当然还是apt安装啦。  (1)安装tofrodos  sudo apt-get install tofrodos  实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)  安装完即可,现在你已经可以进行文本格式的转换啦。  比如: todos Hello.txt (即unix2dos Hello.txt)  fromdos Hello.txt (即dos2unix Hello.txt)  (2)做一些优化  由于习惯了unix2dos和dos2unix的命令,可以把上面安装的两个工具链接成unix2dos 和dos2unix,或者仅仅是起个别名,并放在启动脚本里。  步骤:以下是代码片段:ln -s /usr/bin/todos /usr/bin/unix2dos  ln -s /usr/bin/fromdos /usr/bin/dos2unix  或者在 ~/.bashrc里起个别名  添加 alias unix2dos=todos alias dos2unix=fromdos  (三)  另外如果要在目录中大量替换, 可以使用find + xargs  比如:  find ./model -name *.sh | xargs fromdos
其他类似问题
为您推荐:
换行符的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 c 换行符 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信