2014-10-20 76 views
0

我正在测试一个小脚本,看看我能否在自动系统中杀死多个作业。但是shell脚本不工作,在回声开始之前以某种方式回显变量显示。第二个回声在子程序中运行吗?为什么第二回声在while循环中首先显示?

#!/bin/bash 
    while IFS=read line; do 
    echo "Start" 
    echo "$line" 
    done < "run.dat" 

我所要的输出是 开始 在run.dat一些线 开始 一些线run.dat

但是我得到的 在run.dat 启动一些线

请建议。

+1

删除IFS =,而读取行...是正确的语法。 – 2014-10-20 10:49:41

+0

你的代码在我的机器上不起作用,给行命令找不到错误 – 2014-10-20 10:50:36

+0

检查这个链接:http://en.kioskea.net/faq/1757-how-to-read-a-file-line-by-线 – 2014-10-20 10:55:23

回答

0

删除IFS=read不是正确的答案。

IFS=read之间增加一个空格是。

那行表示whileIFS=readline(即而当IFS变量具有在line命令的环境的值readline命令返回true)。

请参阅http://mywiki.wooledge.org/BashFAQ/001了解更多信息。