- ベストアンサー
bashで変数にパイプを入れ、コマンドとして使う方法
- bashで変数にパイプを入れ、コマンドとして使う方法について教えてください。
- Linux環境で、bashを使ってモニタリングスクリプトを作成しています。引数で実行するモニタリングコマンドを変えるため、パイプが含まれる変数を実行する方法を知りたいです。
- bashシェルでパイプを含む変数を実行する場合、シングルクォーテーションで囲んでもパイプとして認識されません。どのように回避できるか教えてください。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- [シェルスクリプト内で bashコマンド後のコマンドが実行されない]
[シェルスクリプト内で bashコマンド後のコマンドが実行されない] 以下の様にシェルスクリプトを記述するとコマンド2が実行されません。 #! /bin/sh コマンド1 bash コマンド2 bash環境でコマンド2を実行させるにはどうしたら良いのでしょうか?
- ベストアンサー
- Linux系OS
- bash:あるプロセスをkillするスクリプト
こんにちは。 RedHat9を使っています。 bashシェルで、コマンドの実行結果を変数にわたすには、どうしたらいいですか? mpg123でmp3を聞いています。 ターミナルからCtrl+Cを2回入力するのではなしに、スクリプトを走らせるだけで実行をとめたいです。 ps -A | grep 'mpg123' の実行結果を変数に入れて、killコマンドの引数にその変数をわたせばいいんじゃないかと思ったんですが。 すみません、よろしくおねがいします。
- ベストアンサー
- その他(OS)
- bashのスクリプト内で、パイプ入力を受け取るには?
bashのスクリプトで質問です。 hoge_command 何らかのコマンド bashtest.sh bashスクリプト とあるときに、 hoge_command | bashtest.sh のようにパイプでの入力をスクリプト内で受け取る方法はありますか? たとえばperlであれば、 while(<STDIN>){ .... のようにして受け取ることができると思いますが、 bashでは、どのようにすればよいでしょう。 また、bashtest.sh で、引数無しのときにUsageを出すようにしてあった場合にうまく動作しないので、 hoge_command | bashtest.sh - のように記述して受け取る方法はあるでしょうか? (同じくperlなら、 if( $ARGV[0] eq "-" ){ while(<STDIN>){ .... のように書いて逃げるところと思います。 初歩的なことで恐縮ですが、よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- bashシェルスクリプトで空白がある場合のコマンドは変数にどう記述したらいいのでしょうか?
bashのシェルスクリプトで #!/bin/bash -x CMD=/bin/service portmap restart;/bin/service nfslock restart;/bin/service nfs restart $CMD としたのですが2行目で既にコマンドが実行されてしまいます。 空白がある場合のコマンドは変数にどう記述したらいいのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプト コマンドを変数にした時の呼び方
はじめまして、シェルスクリプトを勉強中の者です。 コマンドを変数にいれて、まとめました。 しかしコマンドの変数を呼びこもうとするとエラーになります。 ============================================ #!/bin/sh GREP="grep" cat "${GREP} '^[0-9]' /home/hoge/test.nicdf" ============================================ ================ シェル実行結果 ============= $ ./test.sh cat: grep '^[0-9]' /home/hoge/test.nicdf: そのようなファイルやディレクトリはありません どう書けば、エラーにならずに正常に動作するでしょうか? ご教授の程よろしくお願いします。
- ベストアンサー
- Linux系OS
- シェル変数とパイプ
シェルの変数にパイプを入れた文字列(コマンド)を格納し、それを実行したいのですが、「|」がただの文字として扱われているようでうまく実行できません。 どのように記述すれば、パイプとして認識してくれるのでしょうか? 次のようなことをやりたいのですが、このようにエラーになってしまいます。 # setenv cmd "ls | grep test" # $cmd ls: |: そのようなファイルやディレクトリはありません ls: grep: そのようなファイルやディレクトリはありません ls: test: そのようなファイルやディレクトリはありません
- ベストアンサー
- その他(プログラミング・開発)
- 【シェルスクリプト】awkの結果を変数に格納したいです。
【シェルスクリプト】awkの結果を変数に格納したいです。 パイプを使って、3つのコマンドを実行し、変数に格納したいです。 command1 | command2 | command3 command2 には grep が、 command3 には awk が入ります。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- シェルスクリプトのbashとperlについて
シェルスクリプトのbashとperlについて 今さら気づいたのですが、PerlもUNIXのコマンドやシェルスクリプトとして使用できるということでしょうか。 RubyやPHPをUNIXのコマンドやシェルスクリプトとして使用することはできますでしょうか。 学ぶとしたら、bashとPerlのどちらが良いでしょうか。 また、シェルスクリプトはどんな用途や利点がありますでしょうか。 Webアプリケーションによるバックアップやログをタイマーでセットして自動的に取得したりすることは可能でしょうか。
- ベストアンサー
- Linux系OS
- パイプの使いかたについて
linux初心者です。 パイプの使いかたについて教えて下さい。 パイプを使うことでパイプ前の結果をパイプ後に引きわたし、パイプ後にあるコマンドを実行できる、というようなことはネットで調べました。 ls -l | lessのような。。(ls結果をlessで表示する。) ここで質問なのですが、 grep photo | illust sample.txt としたとき、sample.txtのなかからphotoまたはillustに、マッチする行を抽出するという意味でよいのでしょうか? 自分で検証した限りではそのようにみえました。 ただ、そうだとしたとき、パイプの意味がよくわからなくなってしまいます。 パイプ前でコマンドを実行、その結果を引数にしてパイプ後でコマンドを実行するというように考えないほうがよいのでしょうか? すみませんが、使用方法について教えてください。
- ベストアンサー
- Linux系OS
お礼
ありがとうございます。 evalはシェル組み込みコマンドってのもいいですね。 こちらの提案を採用させていただきます。