• ベストアンサー

bashで出力を変数に格納したい。

初歩的な質問で申し訳ありません。 bashで、あるプログラムの出力の一部を変数に格納したいのですが、どのようにすればよいのでしょうか? 例えば、 >>./test.exe this is a pen. という実行ファイルがあるときに。 isのみを、変数 a に格納する。と言ったものです。 >>echo ${a} is

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

第二ワードをセットするということですよね。 X=(`./test.exe`) a=${X[1]} echo ${a} とか set -- `./test.exe` a=$2

asa1003
質問者

お礼

>>第二ワードをセットするということですよね。 はい。 ありがとうございます!! 出来ました!

関連するQ&A

  • 変数の引き継ぎ(bash)

    bashで開発をしているのですが、 メインの変数より子シェルの変数に引き継ぎをしたいのですが、 どうすればいいのでしょうか。 test.sh #!/bin/bash # 外部変数 sub_test() { echo $1 } # メイン sub_test # test.sh AAA シェルを実行すると、AAAという文字が出てきません。 宜しくお願いします。

  • bashで変数の文字列を編集するにはどうすれば良いですか?

    bashで変数の文字列を編集するにはどうすれば良いですか? ■モジュール-Top #!/bin/bash declare Test1=2010-06-10 declare Test3=2010-03-01 declare Test2=/home/user/test.sh declare Test1x declare Test2x declare Test3x Test1x=[Test1から算出] Test2x=[Test2から算出] Test3x=[Test3から算出] echo 'Test1x='${Test1x} echo 'Test2x='${Test2x} echo 'Test3x='${Test3x} ■モジュール-Bottom ■実行結果 Test1x=201006 Test2x=2010-02-28 Test3x=test.sh この時、[Test1から算出]、[Test2から算出]、[Test3から算出]は、どのようになりますか?

  • DOSコマンドで結果として出力される文字列を変数に格納したい

    DOSコマンドで、あるソフト(タスク)が実行されていればプログラムAを、そうでなければプログラムBを実行するバッチを組んでいます。タスクの一覧はtasklistで取得できることが分かり、対象となるタスクおみを抽出する方法も分かりました。しかし、この後どうすれば良いかが分かりません。対象となるタスクが存在した場合としない場合では出力される文字列が違います。この文字列を比較することで分岐が実現できると思ったのですが、それには文字列を変数に格納する必要があります。以下のように記述し、うまくいくことを期待したのですが、駄目でした。 set STATUS=tasklist /fi "Imagename eq タスク名" tasklist /fi "Imagename eq タスク名"の部分が関数であれば、戻り値があってそれを格納することができるのではないかと思ったのですが、できませんでした。このケースに限ったことではありませんが、各コマンドの実行結果として出力される文字列を変数に格納するにはどうすれば良いのでしょうか?VBSやWSHなどではなく、.bat形式の場合でお願いします。

  • bashでの変数の引渡し方法

    bashを使用するのが初めてなので教えてください。 shellscriptの中で変数を設定するのに共通変数設定用の子Shellを実行して変数を設定したいと思っていますが、うまく動きません。どのように設定したらいいのでしょうか。cshのときはsetenvでよかったのですが。。 親shell(hoge.sh) -------------- #!/bin/sh ./setenv.sh #変数設定用子Shell echo $USER exit 0 -------------- 子Shell(setenv.sh) -------------- #!/bin/sh USER="hoge" exit 0 -------------- 実行すると以下のようになります。 $./hoge.sh USER: not found

  • sedの引数を変数に格納する方法

    例えば、次のコマンド echo a b c d e f | sed -e 's/.*\(b.*e\).*/\1/' -e 's/.*b c *\(.*\) .*/\1/' の「-e 's/.*\(b.*e\).*/\1/' -e 's/.*b c *\(.*\) .*/\1/'」の部分を変数に格納して echo a b c d e f | sed $regex のように実行したいのですが、変数が展開されるときにクォーテーションマークがどのように付与されるのかを理解できず、 regex=’-e s/.*\(b.*e\).*/\1/' まではできたのですが、コマンドにスペースが入った場合、どうすれば良いのかわからないため、後半のコマンドを格納することができません。 この場合、どのように変数に格納すれば良いのでしょうか。 よろしくお願いいたします。

  • コマンドの実行結果を変数に格納いしたい。

    有るプログラムへ特定ディレクトリのファイル数を渡す必要があり、バッチファイルを書いてますが、うまく行きません。 アドバイスを頂けましたら幸いです。 コマンドの実行欠課を変数に格納する方法を調べており、FOR文を使う事は分かったのですが、パイプを使った処理がうまく行きません。 ◎実行したいコマンド DIR /B | FIND /C /V "log” ◎バッチファイル @ECHO OFF for /f "usebackq tokens=*" %%i in (`DIR /B | FIND /C /V "log"`) do @set RESULT=%%i echo %RESULT% @ECHO ON パイプを使わず、単純なコマンドだと正常に変数に格納されますので、パイプでFINDに渡している事がだめだと思っております。 こういった場合、どう書けばよいかお教えください。

  • シェルでコマンドの実行結果を変数に格納する方法

    以下のようなコマンドライン引数を取得するシェルを書いたのですが 実行時にエラーになってしまいました。コマンド(第2引数以降を取得するコマンド)の実行結果を変数に格納するところでエラーになってしまいました。どのようにすればよろしいでしょうか。 「./test2.sh a b c d e」を実行し「a: コマンドが見つかりません」 というエラーが出てしまいます。 (test2.shの内容) #!/bin/sh OUTPUTFILE=$1 SRC_FILES=`"$@" | cut -d ' ' -f 2-` # 第二引数以降を取得 echo $OUTPUTFILE ←ここは表示される echo $SRC_FILES ←ここでエラー

  • bashで配列から、特定の要素を抽出する。

    echo ${array[0]} This is a pen. echo ${array[1]} There is a cat. echo ${array[2]} Who are you? echo ${array[3]} Can I help you?  ・   ・   ・ などと、要素数は任意で 各要素に任意の文章が入っている 配列があるとき、 特定の文字列の間の要素のみを取り出して 別の配列に入れるという処理をbashで行いたいです。 具体的に、上記の例ですと 要素1と要素2だけを抽出し 新たな配列 newarrayに入れ echo ${newarray[0]} There is a cat. echo ${newarray[1]} Who are you? としたいです。 どのように処理したらよろしいでしょうか? よろしければ、知恵をお貸し願えたらと思います。

  • bashで変数を含んだファイル読み込み

    お世話になります。 外部読み込みファイルの中に変数やコマンドをセットして利用したいのですが、それはできないのでしょうか? ----test.txt messages-${testdate} `hostname`.log -------------------------- ----test.sh testdate=`date +%Y%m%d` for line in `cat test.txt` do echo $line done -------------------------- ----出力 messages-${testdate} `hostname`.log -------------------------- ----望む出力結果 messages-20150521 servername.log -------------------------- 方法がございましたら、ご教授お願い致します。

  • Stringクラスの変数の格納アドレスを知りたい

    いつもお世話になります。 Javaの文字列クラスのStringは参照型ですが、この変数の値が格納されたアドレスを知るためにはどうすればよいのでしょうか。eclipse上で、文字列の変数に対してtoString()を試してみたところ、格納されている文字列が出力されました。 ※自作したクラス、たとえばtest.MyClassだとすれば、toString()を用いれば「test.MyClass@01234」というような表記で出力されますが、このような情報を取得するにはどうすればよいでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう