シェル変数
シェル変数とは
シェルの実行環境を設定できる変数のことですので、
環境変数のようなものですね。
どういうものを設定できるかというと、
たとえば
Jという変数に
JAPAN
という値を定義できたりします。
J=JAPAN
つまり
Jといえば
JAPANという風に使用できます。
これを知っているだけで
入力の手間が省けたりしますので
知っておかないと損ですね。
シェル変数を見るには
setコマンドで見ます。
yamada@yamada-desktop:~$ set > 1.txt
yamada@yamada-desktop:~$ head -20 1.txt | nl
1 BASH=/bin/bash
2 BASH_ALIASES=()
3 BASH_ARGC=()
4 BASH_ARGV=()
5 BASH_CMDS=()
6 BASH_COMPLETION=/etc/bash_completion
7 BASH_COMPLETION_DIR=/etc/bash_completion.d
8 BASH_LINENO=()
9 BASH_SOURCE=()
10 BASH_VERSINFO=([0]="4" [1]="0" [2]="33" [3]="1" [4]="release" [5]="i486-pc-linux-gnu")
11 BASH_VERSION='4.0.33(1)-release'
12 COLORTERM=gnome-terminal
13 COLUMNS=132
14 DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-eEf5t26AvJ,guid=2ce49cd19f5bb325234e42c04bbbb85d
15 DESKTOP_SESSION=gnome
16 DIRSTACK=()
17 DISPLAY=:0.0
18 EUID=1000
19 GDMSESSION=gnome
20 GDM_KEYBOARD_LAYOUT=jp
(長いので中略)
5185 ri_get_methods ()
5186 {
5187 local regex;
5188 if [ "$ri_version" = integrated ]; then
5189 if [ -z "$separator" ]; then
5190 regex="(Instance|Class)";
5191 else
5192 if [ "$separator" = "#" ]; then
5193 regex=Instance;
5194 else
5195 regex=Class;
5196 fi;
5197 fi;
5198 COMPREPLY=(${COMPREPLY[@]} "$( ri ${classes[@]} 2>/dev/null | ruby -ane 'if /^'"$regex"' methods:/.../^------------------|^$/ and \
5199 /^ / then print $_.split(/, |,$/).grep(/^[^\[]*$/).join("\n"); \
5200 end' | sort -u )");
5201 else
5202 COMPREPLY=(${COMPREPLY[@]} "$( ruby -W0 $ri_path ${classes[@]} | ruby -ane 'if /^-/.../^-/ and \
5203 ! /^-/ and ! /^ +(class|module): / then \
5204 print $_.split(/, |,$| +/).grep(/^[^\[]*$/).join("\n"); \
5205 end' | sort -u )");
5206 fi;
5207 COMPREPLY=($( compgen $prefix -W '${COMPREPLY[@]}' -- $method ))
5208 }
こんな風にずらずらっと
シェル変数を見ることができます。
また新しくシェル変数を設定するには
普通にイコールで作ればオッケーです。
yamada=tensaibakabonなどと作ります。
●セットしました。
yamada@yamada-desktop:~$ yamada=tensaibakabon
●シェル変数の中からyamadaという後が含まれている行を
grepコマンドを使って取り出します。
yamada@yamada-desktop:~$ set > 2.txt
yamada@yamada-desktop:~$ cat 2.txt | grep yamada
GTK_RC_FILES=/etc/gtk/gtkrc:/home/yamada/.gtkrc-1.2-gnome2
HISTFILE=/home/yamada/.bash_history
HOME=/home/yamada
HOSTNAME=yamada-desktop
LOGNAME=yamada
OLDPWD=/home/yamada/yamachan
ORBIT_SOCKETDIR=/tmp/orbit-yamada
PWD=/home/yamada
SESSION_MANAGER=local/yamada-desktop:@/tmp/.ICE-unix/1475,unix/yamada-desktop:/tmp/.ICE-unix/1475
USER=yamada
USERNAME=yamada
XAUTHORITY=/var/run/gdm/auth-for-yamada-tx5OQJ/database
yamada=tensaibakabon
このように
yamada=tensaibakabonが
新しくシェル変数として追加されていました。
シェル変数を削除するには
シェル変数を削除するにはunsetコマンドを使用します。
unset yamadaで
先程セットしたシェル変数を削除することができます。
どうですか?
思ったより簡単ではないでしょうか?
簡単にできることですので
マスターしないと損ですね。
サーバの管理や
複数台のパソコンへの一括の管理など
便利にできることが多いので
シェルスクリプトをマスターされることをおすすめます。
また、求人欄を見ているとシェルスクリプトを
かけることを条件にしている案件も
多いですのでこの機会にマスターしていると
得ですね。
シェルスクリプトやITの仕事に関する情報は
メルマガで最新の情報をお伝えしていますので
気に入ったら読者登録お願いします。
まぐまぐ ITに関する秘密の話 (無料)
ー
ー