2

以下のコードは、期待どおりに機能していません。私はこれをすべて間違っているためかもしれませんが、それは見積もりの​​問題かもしれないと思います。

    #!/bin/bash 

    IFS=$'\n' 
    fortune_lines=($(fortune | fold -w 30))
    Screen_Session=$(mainscreen)
    Screen_OneLiner=$(screen -p 0 -S ${Screen_Session} -X stuff "`printf "say   ${fortune_lines[@]}\r"`")

    for var in "${Screen_OneLiner[@]}"
      do
        echo "${var}"
    done

これを実行しようとすると、何かを正しく引用していないと思います。わかります。

    line 5: mainscreen: command not found
    [screen is terminating

基本的に私はこの関数を追加しようとしています(それは機能します)

    IFS=$'\n' 
    fortune_lines=($(fortune | fold -w 30))

この画面にワンライナー

   screen -p 0 -S ${Screen_Session} -X stuff "`printf "say   ${fortune_lines[@]}\r"`"

次に、配列をループさせます

    for var in "${ArrayName[@]}"
   do
      echo "${var}"

   done

ですから、私がやろうとしていることから(コードで)どれだけ離れているのかわかりません。どんな助けでも素晴らしいでしょう。

4

2 に答える 2

0

この行には問題があります

Screen_Session=$(mainscreen)

ここではコマンド置換を使用しているため、mainscreenが有効なコマンドでない場合はcommand not foundエラーが発生します。

かっこの代わりに中かっこを使用するつもりですか?

于 2012-10-31T03:47:39.223 に答える
0

コメントを回答としてマークする機能のリクエストは引き続き拒否されるため、上記のソリューションをここにコピーします。

これを機能させることができました... gist.github.com/4006586 – user1787331

于 2013-09-18T10:57:03.490 に答える