2017-06-27 7 views
0

ユーザー名と件名を持つ入力ファイルがあります。シェルスクリプトは入力ファイルから引数を取っていません

入力

sk7865 /opt/apps/login 

sk4888 /opt/apps/info 

私は上記のファイルからの入力を取り、メールを送信するシェルスクリプトを書いています。上記のスクリプトで

シェルスクリプト

#!/bin/bash 
while read a b 

    echo echo ""$a"" | mail -s ""$b"" "$a"@example.com 

done < input 

私が使用していた実際のコマンドは次のとおりです。 -

echo "hello world" | mail -s "a subject" [email protected] 

私はそれが引数撮りたい、ハロー世界でbは件名私はスクリプトの中で使ったのと同じように誰かにメールを送ってください。しかし、それは議論を取っていない。私はそれが二重引用符と関係していると思います。適切なスクリプトを私に提供してください。

+2

あなたのコードはコードブロックに含まれていませんが、それは非常に間違っていますが、誤植と思われます。 – SaintHax

+1

@SaintHaxのコメントに追加するには:[コードとサンプルの入出力を正しくフォーマットする](http://meta.stackexchange.com/a/22189/248777)の情報があります。 – mklement0

+0

には入力ファイルのいくつかの行も含まれています – SaintHax

答えて

0

あなたはしばらくdoが欠けているように見える:

#!/bin/bash 

while read -r a b 
do 
    echo "$a" | mail -s "$b" "$a"@somewhere.com 

done < input 

はいつもここに投稿する前にあなたのbashスクリプトでshellcheckを実行することを忘れないでください。

また、そこにはecho echoがあり、全体に二重引用符が付きます""xyz""

+0

彼は#!/ bin/bashに#がありませんでした。 – SaintHax

+0

@SaintHax:私はOPがユーザーの名前がわからないと心配していると思いますので、D –

関連する問題