set シェル変数を表示又は設定するUnixシェルコマンド

setとは、シェル変数を表示又は設定する Linux/Unix シェルコマンドである。

set
シェル set
sh
bash
dash
ksh

構文

set [ -x | +x ]

オプションを指定せずに set コマンドを実行すると、現在設定されているシェル変数及び環境変数の一覧が表示される。

$ set | more
BASH=/bin/bash
BASH_ALIASES=()
BASH_ARGC=([0]="0")
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_VERSINFO=([0]="2" [1]="10")
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="5" [1]="0" [2]="17" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='5.0.17(1)-release'
COLUMNS=120
DIRSTACK=()
EUID=1000
GROUPS=()
HISTCONTROL=ignoreboth
HISTFILE=/home/tsuka/.bash_history
HISTFILESIZE=2000
HISTSIZE=1000
HOME=/home/tsuka
HOSTNAME=E595
HOSTTYPE=x86_64
IFS=$' \t\n'
LANG=C.UTF-8
--More--

オプション

以下に示すオプションを set コマンドに指定できる。

-x
コマンドの実行時に、コマンドと引数の内容を表示する。シェルスクリプトで実行内容を表示させたい場合等に使う。
$ echo Hooray
Hooray
$ set -x
$ echo Hooray
+ echo Hooray
Hooray
+x
コマンドの実行時に、コマンドと引数の内容を表示しない。
$ set -x
$ echo Hooray
+ echo Hooray
Hooray
$ set +x
+ set +x
$ echo Hooray
Hooray

shにおけるsetコマンドの使用例を示す。

$ cat example.sh
set `ls /home/marina`
while [ 0 -lt $# ]
do
echo $1
shift 1
done
$ ls /home/marina
foo     bar     baz
$ sh example.sh
foo
bar
baz
$