2016-10-19 11 views
0

コマンドに配列変数を統合:私の目標は、次のコマンドを呼び出すことです

(echo "test";uuencode testfile1.txt testfile1.txt;uuencode testfile2.txt testfile2.txt)|mail -s "subject" "[email protected]" 

予想通りシェル作品でそれを呼び出します。私は、次の試してみた

ARR=("uuencode testfile1.txt testfile1.txt" "uuencode testfile2.txt testfile2.txt") 

しかし、私はのuuencodeコマンドは、アレイに格納されている場合、そうしたいと思います

STR=$(IFS=';'; echo "${ARR[*]}"); 
(echo "test";"$STR")|mail -s "subject" "[email protected]" 

が、私は得ることに保ちます次のエラー:

uuencode testfile1.txt testfile1.txt;uuencode testfile2.txt testfile2.txt: command not found 

この問題を解決するにはどうすればよいですか?

は、私はそれはあなたが、アレイ内の文字列として各コマンドを格納し、より大きな文字列にそれらに参加しているよう

+0

このようなコマンドを保存することは根本的に間違っています。より現実的な複数のコマンドの例を挙げて、より良い解決策を提案できますか? – chepner

答えて

1

が見えるコマンドセパレータとして;を認識していないと思います。実行する文字列にevalを実行できます。

(echo "test";eval "$STR")|mail -s "subject" "[email protected]" 
+0

もちろん...私は本当に寝る必要があります。 –

関連する問題