• ベストアンサー

echo $!の意味を教えてください

Linuxにおいて、コマンド echo $! の意味を教えてください。 ネットで検索しても、特殊文字なので検索できません・・・ よろしくお願いします。

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

  • ベストアンサー
  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.2

バックグラウンドで実行されたコマンドのプロセスID が設定される変数。 「 sleep 100 & 」のように & を付けて実行すると、そのコマンドはバックグラウンドで実行される。 上記の場合、「 $! 」には sleep コマンドの PID (プロセスID)がセットされている。 変数を使用する - UNIX & Linux コマンド・シェルスクリプト リファレンス http://shellscript.sunone.me/variable.html

hirapiro
質問者

お礼

早々に的確なご対応、ありがとうございました。 ページに記載している一覧表、とても見やすくてためになりました。 ありがとうございました。

その他の回答 (3)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.4

まず、 $で始まるものは『変数(パラメータ) を展開』する『シェルの機能』だということを覚えておきましょう。 そうすると、マニュアルの「パラメータ展開」というところを読めばいい、ということがわかります。 今後、他の見慣れない「 $なんたら 」というものを見かけたら、「シェルのマニュアル」の「パラメータ展開」を探せばいいのです。 Linuxで一般的に使われているのは bash というシェルです。 bash のマニュアルから、パラメータ展開というところを読んでみると http://linuxjm.sourceforge.jp/html/GNU_bash/man1/bash.1.html > 特殊パラメータ > ! 最後に実行されたバックグラウンド (非同期) コマンドの プロセス ID に展開されます。 とわかります。

hirapiro
質問者

お礼

なるほど、細かくご説明いただきましてありがとうございました。 初心者なもので、大変勉強になりました。 ありがとうございましたm(__)m

  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.3

すいません。間違っています。無視してください。m(__)m

hirapiro
質問者

お礼

いえいえ、素早いご返答ありがとうございました(^^)

  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

http://shellscript.sunone.me/for.html ここに載っています。

関連するQ&A

  • $ ls ‘*’と$ echoはどんなことをしているのでしょうか?

    Linuxのコマンドの質問です。 $ ls ‘*’と$ echo ‘*'は、どんなことをしているのでしょうか?

  • echo 改行できない

    コマンドで空白行を作りたいのですが、 次のどれを試しても、出力したファイルを見ると、空白行ができていません。 どうしたらできるのでしょうか? echo. echo; echo:

  • echoコマンドで色を

    ググってみてもよくわからなかったので質問させて頂きます。 当方、UNIX系OSを使っています。 echoコマンドで、出力される文字に色をつけるにはどうすれば良いのでしょうか? ご存知の方がいれば、どうか教えて下さい。 お願いしますm(_)m

  • "print"と"echo"の違いを教えてください

    PHPを始めた初心者なのですが、"print"と"echo"の使い道の違いがよく解りません。 調べてはみましたが、"print"は『文字列を出力する』、"echo"は『1つ以上の文字列を出力する』と書いてあり、意味が良く解りませんでした。 どなたか、ご存知でしたらご指導宜しくお願い致します。

    • 締切済み
    • PHP
  • echo で ' を表示させる方法

    echoコマンドで「'」を表示させようとしているのですが、どのようにすれば良いのでしょうか? tcshを使用しています。 ※例えば 「$」や「"」の表示ならば echo '$ ' echo '"' とすればよいのは判るのですが... 「'」は絶対に無理??

  • echoとaliasの併用について

    よろしくお願いします。 windows7(64bit)上でのcygwinと、ubuntu12.04(i386)でtcshを使用しています。 tcshのaliasで、 リダイレクト(>)やパイプ(|)で始まる設定をした後、 echoやcatコマンド等を絡めて使いたいと思ったのですが、 例えば alias clip '> /dev/clipboard' のようにして コマンドライン上で echo "test" clip のようにしても、 test clip のように表示され、(あたり前のことですが) aliasで設定したclipの内容が展開されません。 ============================================================== 上記の例で言えば、echoで出力する文字列を /dev/clipboardに渡すということをしたいのですが、 aliasの設定内容をechoで出力させずに展開させる方法はあるのでしょうか? もしくは、"> /dev/clipboard"という入力を省略できるような 別の方法があれば教えていただきたいです。 ============================================================== もしくかしてかなり初歩的な質問なのかもしれまんが、 何卒よろしくお願いいたします。

  • Linuxでの質問。(echoコマンドなど)

    Linuxでの質問。 1.echoコマンドで* $home=' home ' (ただし home はシェル変数homeの値)と表示したい。echoコマンドにどのようは引数を渡せばよいのでしょうか。 実行例 % echo 適切な引数 * $home='/home/gbu/myname' 答えは echo \* "\home="\'$home\' でよろしいですか。 echo \* '$home='\'$home\' と入力しても同じ結果が出るのですが、どっちでいいでしょうか。 2.次の2つのコマンドラインは実行結果が異なる。その違いが生じる理由は何でしょうか。 % cd ; (cd / ; pwd) ; pwd % cd ; cd / ; pwd ; pwd まったく初心者です。manコマンドを使って調べたのですが。。 man () って入力しても、何にも出なくて、ぜひ教えてください。お願いします。 3.演習課題にならって、 エイリアスが子プロセスのシェル(サブシェル)に引き継がれるかどうかを確かめる手順の例を示しなさい。っていう課題が出ました。どういうふうにやればいいでしょうか。教えてください。 演習課題 シェル変数と環境変数の違いの確認 % set foo=1 シェル変数fooに値を設定する。 % setenv FOO 1 環境変数FOOに値を設定する。 % echo $foo シェル変数fooの値を表示する。 % echo $FOO 環境変数FOOの値を表示する。 % tcsh 子プロセスとしてシェルを起動する。 (ここから、子プロセスのシェル上での操作) % echo $foo シェル変数fooの値の表示を試みる。(引き継がれていない。) % echo $FOO 環境変数FOOの値を表示する。(引き継がれている。) % set foo=2 シェル変数fooに値を設定する。 % setenv FOO 2 環境変数FOOに値を設定する。 % exit 子プロセスとしてシェルを起動したシェルを終了する。 (ここまで、子プロセスのシェル上での操作) % echo $foo シェル変数fooの値を表示する。(子プロセスでの変更は影響しない。) % echo $FOO 環境変数FOOの値を表示する。(子プロセスでの変更は影響しない。) エイリアスの意味を調べたのですが、「コマンドを別名で登録したもの」と解釈されていて、これはどういうことなんでしょうか。 この問題の意味は、課題にならって set alias=1 と設定して、次は setenv ALIAS 1 そして、課題のように、fooのとこをalias、FOOのとこをALIASと変えて、最後echo $ALIAS を調べればいいのですか。 学校の宿題ですが、やってもぜんぜん意味不明なので、助けてください。

  • echoは命令なんですか? phpのechoの説

    echoは命令なんですか? phpのechoの説明に 「echo」は文字列などを出力するための命令です と書いてあるんですが、echoはリファレンスには関数ではなく言語構造とかいてあります echoは言語構造であり命令なんですか? 関数も命令ですか?

    • ベストアンサー
    • PHP
  • phpでechoというのはなんですか?

    phpでechoというのはPythonでいうprintと同じものですか? あと、echoってどういう意味ですか?printはなんとなく出力するとわかりますが なんでechoなんでしょうか?

    • ベストアンサー
    • PHP
  • DOSのECHOコマンドで > を表示させたい

    DOSでバッチファイルを組んでいます そこで ECHOコマンドで > を表示させたいのですが 具体的には ECHO > と打っているんですがコマンドの構文が間違っていますと出ます おそらく実行結果をファイルにするときの > になってしまっているのだと思います ECHOで > を表示させる方法は無いでしょうか? 知っている方いればお願いします