FC2ブログ

更新履歴Blog

日記

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

シェル変数と環境変数

○シェル変数
  • シェルでのみ有効な変数の事
  • シェル変数を作成する手順、変数「HOGE」に文字列「hoge」を代入
    $ HOGE=hoge
    
  • シェル変数「HOGE」を出力
    $ echo $HOGE
    
    echoは文字列を出力するコマンド

  • 設定されているシェル変数は「set」コマンドで確認できる
    $ set
    
    setコマンドの出力に先ほど設定した変数「HOGE」が確認できる
    HOGE=hoge
    
  • シェル変数は、シェルで起動したプログラム(子プロセス)では値を引き継げない
    test1.shを作成して実行してみる
    $ vi test1.sh
    
    #!/bin/sh
    echo $HOGE
    
    作成したtest1.shを実行する
    ./test1.sh
    
    $HOGEは有効でないので何も出力されない
  • シェル変数をシェルで起動したプログラム(子プロセス)で使いたい場合は環境変数にする必要がある。


○環境変数
  • 環境変数のセットは「export」コマンドを使ってシェル変数を指定する事で設定できる。
    $ export HOGE
    
  • 設定した環境変数は「env」コマンドで確認できる。
    $ env
    
    設定したHOGEが確認できる
    HOGE=hoge
    
  • 環境変数はシェルで起動したプログラム(子プロセス)にも引き継ぐ事ができる。
    試しに、上で作成したtest1.shを実行する
    $ ./test1.sh
    
    HOGEは環境変数としてセットされているので出力される
    hoge
    
  • 環境変数から値(HOGE)を削除したい時はexportコマンドの-nオプションで削除できる
    環境変数から削除されるだけなので、シェル変数には残っている。
    export -n HOGE
    


○sourceコマンド
  • シェルで起動したプログラム(子プロセス)でシェル変数や環境変数をセットする事はできない
  • シェルスクリプトtest2.shを作成して実行
    $ vi test2.sh
    
    #!/bin/sh
    HOGE2=hoge2
    export HOGE2
    
    $ ./test2.sh
    
  • setコマンド、envコマンドでHOGE2を探しても見つからない(設定されていない事が確認できる)
  • 「source」コマンドを使うと正しく設定できる
    $ source test2.sh
    
  • setコマンド、envコマンドでHOGE2が設定されてる事が確認できる
スポンサーサイト

コメント

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://v2rt.blog81.fc2.com/tb.php/42-180061d5
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。