linux 批处理命令,执行完第一个操作后,再执行第二个命令,怎么做?
要用一个软件,用命令进行操作,比方说首先要运行命令A,然后再运行命令B。A的执行过程会生成一个文件往里写东西,希望A写完东西之后再执行B。如果直接把两个命令写在一个sh文...
要用一个软件,用命令进行操作,比方说首先要运行命令A,然后再运行命令B。A的执行过程会生成一个文件往里写东西,希望A写完东西之后再执行B。如果直接把两个命令写在一个sh文件里运行,A还没写完B就开始运行了,要怎么做才好?
展开
1个回答
展开全部
不会的,sh 文件是串行运行的,执行完A 才会执行b,除非在一个命令后 加 &
更多追问追答
追问
第一个命令是对一个软件的操作,第二个命令的执行需要用到第一个命令写的东西,我是这么写的:
#!/bin/bash
A
B
C
实际确实是B马上接着A就执行了,但是A还没写完
追答
可能a是自动后台的。
可以这样,
bash 可以得到A的进程号,
在执行 b 之前,先判断进程a 是否退出,没有退出的话就等待。
或者,判断 a 写的文件 是否被关闭,b等待那个文件关闭;
或者,在执行b前,每隔一秒或几秒,获取 那个文件的大小,只有文件的大小不变,才执行b
如果可以让a把文件数据送入管道的话,可以使用管道 把a 的数据传给b,不通过文件。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询