首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >期望脚本在运行脚本之前检查文件类型并更改它

期望脚本在运行脚本之前检查文件类型并更改它
EN

Stack Overflow用户
提问于 2015-06-17 09:01:23
回答 1查看 844关注 0票数 0

我正在尝试编写一个脚本来运行脚本,但在运行脚本之前,我想检查它是dos还是unix格式,并进行相应的转换。这是我到目前为止所知道的:

代码语言:javascript
复制
spawn ssh root@login
expect "assword:"
send "myPass\r"
expect "#"
send "cd /myDir\r"
expect "#"

if head -1 *.sh | grep $'[\x0D]' >/dev/null  #check to see if dos or unix
   then   #if dos then convert to unix and change permissions
    dos2unix *.sh
    chmod 777 *.sh
   else   #else execute script
    ./*.sh
fi

expect "#"

是否允许在expect脚本中间包含if语句,如下所示?另外,我如何在if语句( dos2unix和chmod)之后执行多个命令。

EN

回答 1

Stack Overflow用户

发布于 2015-06-17 18:02:21

不,你不能把shell和expect混在一起,但是你可以发送一个复杂的shell命令:

代码语言:javascript
复制
send "cd /myDir\r"
expect "#"
send {for f in *.sh; do head -1 "$f" | grep -q $'[\x0D]' && { dos2unix "$f"; chmod 777 "$f"; }; ./"$f"; done}
send "\r"
expect "#"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30880685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档