既に定義されているシェル変数はsetenv により環境変数として宣言する事ができます。
printenv コマンドにより環境変数の一覧を表示します。
引き数なしのset はシェル、環境変数の両方を表示します。
| setenv 変数名 変数値 | # set と違い = は用いない |
$ setenv aaa "sore sore" $ printenv | 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 |
| cwd | カレント・ディレクトリ |
| home | ホーム・ディレクトリ |
| path | 入力されたコマンドをシェルが検索するディレクトリの順番 |
| shell | カレント・シェルのファイル名(/bin/csh) |
| HOSTNAME | ホスト名 |
| OLDPWD | 直前にいたディレクトリ |
| PPID | シェルの親プロセスID |
| TERM | 端末の型式名(xterm, vt100など) |
| USER | ログイン・ユーザ名 |
| シェルの動作を制御する変数 | |
| EDITOR | コマンドライン編集で使用するエディタ名 |
| FCEDIT | フルスクリーンでコマンドを編集する時のエディタ名 |
| HISTSIZE | 記憶するコマンド履歴の最大数 |
| IGNOREEOF | EOF(^D)を入力してもログアウトしない。 |
| LANG | man やエラーメッセージの表示言語の切替え。 (C, ja_JP.eucJP など) |
| TMOUT | 指定された秒数の間、何も操作されなかった場合シェルを終了する(タイムアウト) |
| その他 | |
| prompt | プロンプト(デフォルトは'>') |
| 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