不懂LINUX的shell怎么写,有没人能将WINDOS下的这段批处理命令变成LINUX下的shell指令,我要再LINUX下用

@echooff:forc.exea.exeb.exefca.txtb.txtiferrorlevel==1pause//这个是比较出不同就暂停gotofor忘记问了,s... @echo off
:for
c.exe
a.exe
b.exe
fc a.txt b.txt
if errorlevel==1 pause //这个是比较出不同就暂停
goto for
忘记问了,shell文件扩展名是什么?怎么运行shell文件,是直接打开吗?
展开
 我来答
百度网友071f4a5
2012-02-02 · TA获得超过188个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:117万
展开全部
首先,exe文件在LINUX不能运行,然后,你这个循环不能正常退出
直接写,假设c.exe\a.exe\b.exe都是LINUX下的可执行文件

#!/bin/bash
while [ true ]#是个死循环,自己CTRL+C退吧
do
#c.exe#注释掉了,我没有这个几个可执行文件
#a.exe
#b.exe
cmp -s a.txt b.txt#我自己写了两个不同的文本文件
if [ $? -ne 0 ]
then
read -p "error" tmp#这里要输入回车继续
fi
done
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
62424258
2019-04-06 · TA获得超过1587个赞
知道小有建树答主
回答量:358
采纳率:66%
帮助的人:133万
展开全部
exe不能在linux下直接运行的,你要先在win下面执行完了再换linux运行脚本,何苦呢?

另外,3个执行文件,为什么只输出了两个文本?c.txt没有吗?
如果是各自运行后都会产生一个a.txt b.txt
那没办法比较,当a完成后产生的a.txt 和b.txt会被b运行后产生的a.txt b.txt给覆盖,对比什么?
如果是a产生a.txt,b产生b.txt,那c.txt呢? c不产生txt的话那它的运行结果就不参与批处理,跟它无关了、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kwydwuf
2012-02-02 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2054万
展开全部
这段脚本是不是循环执行三个程序,然后比较 a.txt b.txt 是否相同,如果不同就退出循环?如果是了话,看下面linux脚本,做同样事情

#!/bin/bash

while true
do
c.exe
a.exe
b.exe
if ! diff a.txt b.txt
then
break
fi
done
更多追问追答
追问
忘记问了,shell文件扩展名是什么?怎么运行shell文件,是直接打开吗?
追答
随便存成什么名字,比如 my.file,然后
chmod +x my.file
让它可以执行,然后就可以用
./my.file
来执行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fox000002
2012-02-02 · TA获得超过3829个赞
知道大有可为答主
回答量:2356
采纳率:97%
帮助的人:1231万
展开全部
主要是把 fc 部分替换,然后几个可执行文件替换成 linux 的版本

while :
do

c.exe
a.exe
b.exe

rc=`diff a.txt b.txt`

if [ "$rc" -ne "" ] then
read -p "Press any key to continue"
fi

done
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式