Linux 检查文件是否存在,并等待sh脚本运行,直到找到该文件
我正在一台linux服务器上工作,它有时非常慢。因此,当我添加一些作业来运行时,我必须等待几个小时,才能运行一个简单的计算 我想知道我是否能够开始下一个分析,但让它等到上一个分析的输出出现。(第二次分析需要第一次分析输出) 我试图使Exception和其他选项起作用,但仍然没有成功(在stackoverflow的上一个问题中找到Exception和其他选项):Linux 检查文件是否存在,并等待sh脚本运行,直到找到该文件,linux,bash,Linux,Bash,我正在一台linux服务器上工作,它有时非常慢。因此,当我添加一些作业来运行时,我必须等待几个小时,才能运行一个简单的计算 我想知道我是否能够开始下一个分析,但让它等到上一个分析的输出出现。(第二次分析需要第一次分析输出) 我试图使Exception和其他选项起作用,但仍然没有成功(在stackoverflow的上一个问题中找到Exception和其他选项): expect{ “输出/分析\u file1.txt” } 任何想法/提示都将不胜感激,并将帮助我分配 我唯一想做的就是让第二张纸条等待
expect{
“输出/分析\u file1.txt”
}
任何想法/提示都将不胜感激,并将帮助我分配
我唯一想做的就是让第二张纸条等待第一个脚本的文本文件给出
四个脚本:1
#!/bin/bash
#$ -cwd
./script1.sh
. ./script2.sh $repla
. ./script3.sh $replac
2:
3:
4:
您可以使用下面的核心进行一些修改
#!/bin/bash
while [ ! -f FILE_NAME ]
do
sleep SOME_SECONDS
done
echo "file found"
您可以使用下面的核心进行一些修改
#!/bin/bash
while [ ! -f FILE_NAME ]
do
sleep SOME_SECONDS
done
echo "file found"
您不应该单独执行多个脚本,而应该创建一个
主脚本运行程序,如下所示:
#!/bin/bash
# sanity checks & parse arguments
./script1
ret=$?
# check for return value of script1 using $ret variable
./script2
ret=$?
# check for return value of script2 using $ret variable
./script3
ret=$?
# check for return value of script3 using $ret variable
...
# do cleanup and reporting
您不应该单独执行多个脚本,而应该创建一个主脚本运行程序,如下所示:
#!/bin/bash
# sanity checks & parse arguments
./script1
ret=$?
# check for return value of script1 using $ret variable
./script2
ret=$?
# check for return value of script2 using $ret variable
./script3
ret=$?
# check for return value of script3 using $ret variable
...
# do cleanup and reporting
如果知道在后台运行的进程的pid,可以使用wait
。Wait还将返回与等待停止的进程相同的退出代码
firstProcess & # Running in background
firstPid=$!
otherProcess # Concurrent with firstProcess
wait $firstPid # Wait firstProcess finish
anotherProcess
如果知道在后台运行的进程的pid,可以使用wait
。Wait还将返回与等待停止的进程相同的退出代码
firstProcess & # Running in background
firstPid=$!
otherProcess # Concurrent with firstProcess
wait $firstPid # Wait firstProcess finish
anotherProcess
第一个脚本是在文件完成时结束,还是继续执行其他操作?@William它在文件完成时结束。您可以在命令行上将它们链接在一起:script1和&script2
script2将在script1完成时运行,并返回success(0)。如果您不相信script1的exit值表示成功或失败,那么只需使用script1;script2
并且,希望script2在文件不存在时能够做一些优雅的事情。第一个脚本是否在文件完成时结束,还是继续执行其他操作?@William文件完成后,它将结束。您可以在命令行上将它们链接在一起:script1和&script2
script2将在完成script1后运行并返回成功(0)。如果您不相信script1的exit值表示成功或失败,那么只需使用script1;script2
,希望script2在文件不存在时能做一些优雅的事情。很抱歉,第二个问题很晚,但我如何检查上一个脚本的值以运行下一个脚本。类似于/script等待(script)。/script2
/script1@SanderVanderZeeuw:您可以使用变量$?
作为最后一个脚本的执行状态。对不起,我不太明白。请你再解释一下好吗?谢谢,我明天试试这个,现在得走了。我会联系你,如果它为我的脚本工作!然后,您可以将$replac
作为/script2.sh$replac
传递给其他脚本,并在script2.sh
中作为$1
获取它。很抱歉,第二个问题很晚,但我如何检查上一个脚本的值以运行下一个脚本。类似于/script等待(script)。/script2
/script1@SanderVanderZeeuw:您可以使用变量$?
作为最后一个脚本的执行状态。对不起,我不太明白。请你再解释一下好吗?谢谢,我明天试试这个,现在得走了。我会联系你,如果它为我的脚本工作!然后您可以将$replac
作为/script2.sh$replac
传递给其他脚本,并在script2.sh中作为$1
获取它。