2016-05-29 2 views
1

私はMacを使用しています。私はバイトコードrunをコンパイルしている、それはのようなコマンドラインで文字列入力で動作することができます:スペースは、txtファイルとコマンドラインで同じ方法で認識されません。

:入力のラインを切断含ま

./run "Here is a text input" 

runをテストするには、私はinputs.txtを書き、1行が1つの入力を表し、

"input1" 
"This is input 2" 
"input 3" 

とは、ここにあるtest.sh

#!/bin/bash 
while IFS='' read -r line || [[ -n "$line" ]]; do 
    echo "Text read from file: $line"; 
    ./run $line 
done < inputs.txt 

問題は、テストは、入力ラインのために失敗した、ということですコマンドラインで同じ行をテストすることはできますが、スペースを含んでいます。

だから、inputs.txtとコマンドラインでは、スペースは同じと解釈されません。

スペースを作るために何をすればよいのか誰でも知っていますか?inputs.txtはコマンドラインと同じ方法で解釈されますか?おそらくinputs.txtの形式を変更する必要がありますか?

+1

が引用問題になる可能性があります。入力ファイルの引用符を取り除き、スクリプトに追加します: './run" $ line "' – jdigital

答えて

2

私はあなただけ

./run $line 

その方法

./run "$line" 
にランが呼び出される前に、 $lineの使用は、引数に分割されることはありません変更する必要があると思います。

関連する問題