2014-10-20 45 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瞭解更多信息。

相關問題