Linux 未能打开一个txt文件
我有一个脚本,它将二进制文件的输出捕获到.txt文件中,然后读取文本文件并向我发送电子邮件:Linux 未能打开一个txt文件,linux,bash,shell,Linux,Bash,Shell,我有一个脚本,它将二进制文件的输出捕获到.txt文件中,然后读取文本文件并向我发送电子邮件: while : do # Start tunneling #url=$(lt --port 8080 &) lt --port 8080 > url_info.txt & url=$(cat url_info.txt) # Send Email ./send.sh "$url" & wait done 经过一段时间的调试,似乎url=$(cat
while :
do
# Start tunneling
#url=$(lt --port 8080 &)
lt --port 8080 > url_info.txt &
url=$(cat url_info.txt)
# Send Email
./send.sh "$url" &
wait
done
经过一段时间的调试,似乎url=$(cat url\u info.txt)
的行不起作用
lt--8080端口将保持运行,直到遇到错误,然后再次运行并发送另一封电子邮件
不确定如何使其工作。这是一个竞赛条件lt
开始写入文件,cat
同时开始读取文件
- 如果
lt
首先设法将某些内容写入文件,则cat
将读取该文件
- 如果
cat
更快,则它将读取上一个文件或空文件,具体取决于lt
的读取距离
最简单的方法是在它们之间添加一个sleep 10
,从而在编写URL时给lt
一个良好的开端
更可靠的解决方案是从lt
读取输出,直到获得所需的信息,但这需要知道命令的预期输出格式。您的命令在尝试读取之前没有时间创建文件。作为一个调试辅助工具或kludge,您可以在两个操作之间添加sleep 10
,给它一些时间来创建文件并编写URL,因为它实际起作用了@你能回答这个问题吗?这样我就可以选择你作为正确答案了?