2016-11-29 3 views
0

ファイルの最終行を印刷する必要があります。 /パス/ファイル引数ファイルの出力先に変数のないファイル名を変数に追加する

コンテンツへ:

>tail -n 1 /path/file 
74.870 534.1 2187.7 0.000 60.0 32047 5.782 716.573 ** 

コマンドラインからの出力は正しいです。

しかし、ときに私が使用します。

arg=`tail -n 1 /path/file` 
or arg=$(tail -n 1 /path/file) 
echo $arg 

74.870 534.1 2187.7 0.000 60.0 32047 5.782 716.573 file1 file2 file3 .... 
file1 file2 file3 are under /path 

なる出力は** lsのようなものに変換されているようですか? 私は意味を理解していません...

私はここで正しい$ argを得ることができますか?

ありがとうございます!

答えて

1

**が展開され、ディレクトリ内のすべてのファイルが一覧表示されます。これはGlobbingと呼ばれます。

ダブルまたは引用され、単一ではない:

echo 74.870 534.1 2187.7 0.000 60.0 32047 5.782 716.573 ** 
74.870 534.1 2187.7 0.000 60.0 32047 5.782 716.573 file1 file2..... 
more files..... and more files...... 

二重引用符で囲まれたとき:

echo "74.870 534.1 2187.7 0.000 60.0 32047 5.782 716.573 **" 
74.870 534.1 2187.7 0.000 60.0 32047 5.782 716.573 ** 

またはset -fワイルドカード拡張を防ぐためにechoを行う前に。

+0

問題が解決しました。本当にありがとう! – cynkiller

関連する問題