LINUX UNIX シェルスクリプト コマンド受験記についてお伝えします -22ページ目

シェル変数



シェル変数とは




シェルの実行環境を設定できる変数のことですので、


環境変数のようなものですね。






どういうものを設定できるかというと、



たとえば



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に関する秘密の話 (無料)





ペタしてね