2017-04-21 29 views
1

我想寫一個腳本來啓動一些守護進程。
我已經保留了一些具有相同內容的腳本,沒有username s和path s。
但是,爲了使腳本更普遍,我試圖讓它更通用,並通過循環來完成。通過從文件中的每一行取兩個參數來循環的shell(bash)腳本

這些是我想運行的通用輸入和腳本。

輸入文件:input.txt

pathA userA 
pathB userB 
... 
pathZ userZ 

工作腳本:echos.sh

echo "1: $1" 
echo "2: $2" 

而且,預期的結果是:

1: pathA 
2: userA 
1: pathB 
2: userB 
.... 
1: pathZ 
2: userZ 

不過,我寫不出正確的腳本給出了預期的結果。

這是我寫的腳本。 (我知道這一定會失敗...):loop.sh(我運行像$ loop.sh input.txt

#listfile=$1 
listlines=`cat $1` 
for args in $listlines 
do 
    bash echos.sh $args 
done 

我怎麼能拿/修復它?

編輯

我很抱歉,我忘了刪除loop.shecho $args ...

回答

0

認爲這回答你的問題,但我不知道。這對我來說有點不清楚。

#!/bin/sh 

if [ -z "$1" ] ; then 
    >&2 echo "Missing input file argument; exiting." 
    exit 1 
fi 

while read -r path user ; do 
    echo "1: $path" 
    echo "2: $user" 
done < "$1" 

input.txt文件包含:

pathA userA 
pathB userB 
pathZ userZ 

輸出示例:

[email protected]:~ $ ./loop.sh 
Missing intput file argument; exiting. 
[email protected]:~ $ ./loop.sh input.txt 
1: pathA 
2: userA 
1: pathB 
2: userB 
1: pathZ 
2: userZ 
1

這個問題不清楚,但我認爲正在尋找:

while read path user; do 
    bash echos.sh $path $user 
done < input.txt 
+0

謝謝,對不起,不清楚的問題。 – QuietJoon

相關問題