既に定義されているシェル変数はexport により環境変数として宣言する事ができます。
printenv または env コマンドにより環境変数の一覧を表示します。
引き数なしのset はシェル、環境変数の両方を表示します。
変数名=変数値 | # 一旦シェル変数を定義し |
export 変数名 | # 環境変数にする |
export 変数名=変数値 | # 同時に行うことも可能 |
$ export aaa="sore sore" $ env | grep aaa aaa=sore soreまた シェル変数、環境変数は全て同じ領域に確保され、フラグにより属性が決定して います。
$ set CDAPATH=.:/usr/jsy/bin:/usr/bin # 環境変数 DISPLAY=:0 HOME=/usr/home/yakoshi : a=2 # シェル変数 b=4 d1=/proj1/ycos1 d2=/proj2/ycos2 d3=/proj3/ycos慣習的に環境変数は大文字で定義することが多いようです。
$ declare -x DATA="abc def" $ env | grep DATA DATA=abc def付与した属性を取り外すには、オプション指定のハイフン(-)に代えて、 プラス(+)を用います。
$ declare +x DATA $ env | grep DATAdeclareは、読込専用(書込不可)属性をつけることもできます。 ただし一旦、読込専用とした変数には修正を加えることができないので、 注意が必要です。
$ declare -r DATA $ DATA=123 bash: DATA: readonly variable
変数名 | 意味 |
---|---|
動作環境を示す変数 | |
$ | シェルのプロセスID |
HOME | ホーム・ディレクトリ |
HOSTNAME | ホスト名 |
OLDPWD | 直前にいたディレクトリ |
PATH | 入力されたコマンドをシェルが検索するディレクトリの順番 |
PPID | シェルの親プロセスID |
PWD | カレント・ディレクトリ |
SHELL | カレント・シェルのファイル名(/bin/bash) |
TERM | 端末の型式名(xterm, vt100など) |
USER | ログイン・ユーザ名 |
シェルの動作を制御する変数 | |
EDITOR | コマンドライン編集で使用するエディタ名 |
FCEDIT | フルスクリーンでコマンドを編集する時のエディタ名 |
HISTSIZE | 記憶するコマンド履歴の最大数 |
IGNOREEOF | EOF(^D)を入力してもログアウトしない。 |
LANG | man やエラーメッセージの表示言語の切替え。 (C, ja_JP.eucJP など) |
TMOUT | 指定された秒数の間、何も操作されなかった場合シェルを終了する(タイムアウト) |
その他 | |
PS1 | プロンプト(デフォルトは'$') |
PS2 | 継続行のプロンプト(デフォルトは '>') |
PS3 | select文のプロンプト(デフォルトは '#? ') |
PS4 | デバッグモードのプロンプト(デフォルトは '#? ') |
RANDOM | 乱数 (範囲0〜32767) |
$ echo "pid=$$, ppid=$PPID" pid=954, ppid=746 $ echo "Welcome $USER-san" Welcome ycos-san
キーワード | 意味 |
---|---|
\h, \H | ホスト名(省略形が \h、FQDNは \H) |
\u | ユーザ名 |
\w, \W | 作業ディレクトリ (絶対パス表記が \w, 最後のサブディレクトリのみ表記は \W) |
\! | コマンド履歴番号(!nnn で呼出可能) |
\$ | 通貨記号(ドルマーク) |
$ PS1="[\! \w]\$ " [1024 ~]$ PS2="\e[33m>\e[00m " [1025 ~]$ ls \ > . Desktop Mail public_html
$ env LANG=C man ls # 英語版のマニュアル表示