JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
マニュアルページセクション 1: ユーザーコマンド     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

紹介

User Commands

acctcom(1)

adb(1)

addbib(1)

admin(1)

alias(1)

allocate(1)

amt(1)

appcert(1)

apptrace(1)

apropos(1)

ar(1)

arch(1)

as(1)

asa(1)

at(1)

atq(1)

atrm(1)

audioconvert(1)

audioctl(1)

audioplay(1)

audiorecord(1)

audiotest(1)

auths(1)

auto_ef(1)

awk(1)

banner(1)

basename(1)

basename(1B)

batch(1)

bc(1)

bdiff(1)

bfs(1)

bg(1)

biff(1B)

break(1)

builtin(1)

cal(1)

calendar(1)

case(1)

cat(1)

cd(1)

cdc(1)

cdrw(1)

chdir(1)

checkeq(1)

checknr(1)

chgrp(1)

chkey(1)

chmod(1)

chown(1)

chown(1B)

ckdate(1)

ckgid(1)

ckint(1)

ckitem(1)

ckkeywd(1)

ckpath(1)

ckrange(1)

ckstr(1)

cksum(1)

cktime(1)

ckuid(1)

ckyorn(1)

clear(1)

cmp(1)

col(1)

comb(1)

comm(1)

command(1)

compress(1)

continue(1)

cp(1)

cpio(1)

cpp(1)

cputrack(1)

crle(1)

crontab(1)

csh(1)

csplit(1)

ct(1C)

ctags(1)

ctrun(1)

ctstat(1)

ctwatch(1)

cu(1C)

cut(1)

date(1)

dc(1)

deallocate(1)

decrypt(1)

delta(1)

deroff(1)

df(1B)

dhcpinfo(1)

diff(1)

diff3(1)

diffmk(1)

digest(1)

digestp(1)

dircmp(1)

dirname(1)

dirs(1)

dis(1)

disown(1)

dispgid(1)

dispuid(1)

dos2unix(1)

dpost(1)

du(1)

du(1B)

dump(1)

dumpcs(1)

dumpkeys(1)

echo(1)

echo(1B)

ed(1)

edit(1)

egrep(1)

eject(1)

elfdump(1)

elfedit(1)

elffile(1)

elfsign(1)

elfwrap(1)

encrypt(1)

enhance(1)

env(1)

eqn(1)

errange(1)

errdate(1)

errgid(1)

errint(1)

erritem(1)

error(1)

errpath(1)

errstr(1)

errtime(1)

erruid(1)

erryorn(1)

eval(1)

ex(1)

exec(1)

exit(1)

expand(1)

export(1)

exportfs(1B)

expr(1)

expr(1B)

exstr(1)

factor(1)

false(1)

fastboot(1B)

fasthalt(1B)

fc(1)

fg(1)

fgrep(1)

file(1)

file(1B)

filebench(1)

filep(1)

filesync(1)

filofaxp(1)

find(1)

finger(1)

fmt(1)

fmtmsg(1)

fold(1)

for(1)

foreach(1)

franklinp(1)

from(1B)

ftp(1)

function(1)

gcore(1)

gencat(1)

geniconvtbl(1)

genmsg(1)

get(1)

getconf(1)

getfacl(1)

getlabel(1)

getopt(1)

getoptcvt(1)

getopts(1)

gettext(1)

gettxt(1)

getzonepath(1)

glob(1)

goto(1)

gprof(1)

grep(1)

groups(1)

groups(1B)

grpck(1B)

hash(1)

hashcheck(1)

hashmake(1)

hashstat(1)

head(1)

helpdate(1)

helpgid(1)

helpint(1)

helpitem(1)

helppath(1)

helprange(1)

helpstr(1)

helptime(1)

helpuid(1)

helpyorn(1)

hist(1)

history(1)

hostid(1)

hostname(1)

i386(1)

i486(1)

iconv(1)

if(1)

indxbib(1)

install(1B)

ipcrm(1)

ipcs(1)

isainfo(1)

isalist(1)

jobs(1)

join(1)

jsh(1)

kbd(1)

kdestroy(1)

keylogin(1)

keylogout(1)

kill(1)

kinit(1)

klist(1)

kmdb(1)

kmfcfg(1)

kpasswd(1)

krb5-config(1)

ksh(1)

ksh88(1)

ksh93(1)

ktutil(1)

kvno(1)

lari(1)

last(1)

lastcomm(1)

ld(1)

ldapadd(1)

ldapdelete(1)

ldaplist(1)

ldapmodify(1)

ldapmodrdn(1)

ldapsearch(1)

ldd(1)

ld.so.1(1)

let(1)

lex(1)

lgrpinfo(1)

limit(1)

line(1)

list_devices(1)

listusers(1)

llc2_autoconfig(1)

llc2_config(1)

llc2_stats(1)

ln(1)

ln(1B)

loadkeys(1)

locale(1)

localedef(1)

logger(1)

logger(1B)

login(1)

logname(1)

logout(1)

look(1)

lookbib(1)

lorder(1)

ls(1)

ls(1B)

m4(1)

mac(1)

mach(1)

machid(1)

madv.so.1(1)

mail(1)

Mail(1B)

mail(1B)

mailcompat(1)

mailp(1)

mailq(1)

mailstats(1)

mailx(1)

make(1S)

makekey(1)

man(1)

mconnect(1)

mcs(1)

mdb(1)

mesg(1)

mkdir(1)

mkmsgs(1)

mkstr(1B)

mktemp(1)

moe(1)

more(1)

mp(1)

mpss.so.1(1)

msgcc(1)

msgcpp(1)

msgcvt(1)

msgfmt(1)

msggen(1)

msgget(1)

mt(1)

mv(1)

nawk(1)

nc(1)

ncab2clf(1)

ncakmod(1)

neqn(1)

netcat(1)

newform(1)

newgrp(1)

newsp(1)

newtask(1)

nice(1)

nl(1)

nm(1)

nohup(1)

notify(1)

nroff(1)

od(1)

on(1)

onintr(1)

optisa(1)

pack(1)

packagemanager(1)

page(1)

pagesize(1)

pargs(1)

passwd(1)

paste(1)

patch(1)

pathchk(1)

pax(1)

pcat(1)

pcred(1)

perl(1)

pfbash(1)

pfcsh(1)

pfexec(1)

pfiles(1)

pfksh(1)

pflags(1)

pfsh(1)

pftcsh(1)

pfzsh(1)

pg(1)

pgrep(1)

pkcs11_inspect(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkginfo(1)

pkglint(1)

pkgmerge(1)

pkgmk(1)

pkgmogrify(1)

pkgparam(1)

pkgproto(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pkgtrans(1)

pkill(1)

pklogin_finder(1)

pktool(1)

plabel(1)

pldd(1)

plgrp(1)

plimit(1)

pmadvise(1)

pmap(1)

pm-updatemanager(1)

popd(1)

ppgsz(1)

ppriv(1)

pr(1)

praliases(1)

prctl(1)

preap(1)

print(1)

printenv(1B)

printf(1)

priocntl(1)

proc(1)

prof(1)

profiles(1)

projects(1)

prs(1)

prt(1)

prun(1)

ps(1)

ps(1B)

psig(1)

pstack(1)

pstop(1)

ptime(1)

ptree(1)

pushd(1)

pvs(1)

pwait(1)

pwd(1)

pwdx(1)

radadrgen(1)

ranlib(1)

rcapstat(1)

rcp(1)

read(1)

readonly(1)

red(1)

refer(1)

regcmp(1)

rehash(1)

remote_shell(1)

remsh(1)

renice(1)

repeat(1)

reset(1B)

return(1)

rksh(1)

rksh88(1)

rlogin(1)

rm(1)

rmail(1)

rmdel(1)

rmdir(1)

rmformat(1)

rmmount(1)

rmumount(1)

roffbib(1)

roles(1)

rpcgen(1)

rpm2cpio(1)

rsh(1)

runat(1)

rup(1)

rup(1C)

ruptime(1)

rusage(1B)

rusers(1)

rwho(1)

sact(1)

sar(1)

sccs(1)

sccs-admin(1)

sccs-cdc(1)

sccs-comb(1)

sccs-delta(1)

sccsdiff(1)

sccs-get(1)

sccs-help(1)

sccshelp(1)

sccs-prs(1)

sccs-prt(1)

sccs-rmdel(1)

sccs-sact(1)

sccs-sccsdiff(1)

sccs-unget(1)

sccs-val(1)

scp(1)

script(1)

sdiff(1)

sed(1)

sed(1B)

select(1)

set(1)

setenv(1)

setfacl(1)

setlabel(1)

setpgrp(1)

settime(1)

sftp(1)

sh(1)

shcomp(1)

shell_builtins(1)

shift(1)

shutdown(1B)

size(1)

sleep(1)

soelim(1)

sort(1)

sortbib(1)

sotruss(1)

source(1)

sparc(1)

spell(1)

spellin(1)

split(1)

srchtxt(1)

ssh(1)

ssh-add(1)

ssh-agent(1)

ssh-http-proxy-connect(1)

ssh-keygen(1)

ssh-keyscan(1)

ssh-socks5-proxy-connect(1)

stop(1)

strchg(1)

strconf(1)

strings(1)

strip(1)

stty(1)

stty(1B)

sum(1)

sum(1B)

sun(1)

suspend(1)

svcprop(1)

svcs(1)

switch(1)

symorder(1)

sys-suspend(1)

sysV-make(1)

t300(1)

t300s(1)

t4014(1)

t450(1)

tabs(1)

tail(1)

talk(1)

tar(1)

tbl(1)

tcopy(1)

tee(1)

tek(1)

telnet(1)

test(1)

test(1B)

tftp(1)

time(1)

timemanp(1)

times(1)

timesysp(1)

timex(1)

tip(1)

touch(1)

touch(1B)

tplot(1)

tput(1)

tr(1)

tr(1B)

trap(1)

troff(1)

true(1)

truss(1)

tset(1B)

tsort(1)

tty(1)

type(1)

typeset(1)

ul(1)

ulimit(1)

umask(1)

unalias(1)

uname(1)

uncompress(1)

unexpand(1)

unget(1)

unhash(1)

unifdef(1)

uniq(1)

units(1)

unix2dos(1)

unlimit(1)

unpack(1)

unset(1)

unsetenv(1)

until(1)

updatehome(1)

uptime(1)

userattr(1)

users(1B)

uucp(1C)

uudecode(1C)

uuencode(1C)

uuglist(1C)

uulog(1C)

uuname(1C)

uupick(1C)

uustat(1C)

uuto(1C)

uux(1C)

vacation(1)

val(1)

valdate(1)

valgid(1)

valint(1)

valpath(1)

valrange(1)

valstr(1)

valtime(1)

valuid(1)

valyorn(1)

vc(1)

vedit(1)

ver(1)

vgrind(1)

vi(1)

view(1)

vipw(1B)

volcheck(1)

volrmmount(1)

w(1)

wait(1)

wc(1)

what(1)

whatis(1)

whence(1)

whereis(1B)

which(1)

while(1)

who(1)

whoami(1B)

whocalls(1)

whois(1)

write(1)

xargs(1)

xgettext(1)

xstr(1)

yacc(1)

yes(1)

ypcat(1)

ypmatch(1)

yppasswd(1)

ypwhich(1)

zcat(1)

zlogin(1)

zonename(1)

zonestat(1)

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

test

- 条件の評価

形式

/usr/bin/test [condition]
[ [condition] ]

sh

test [condition]
[ [condition] ]

csh

test [condition]
[ [condition] ]

ksh88

test [condition]
[ [condition] ]

ksh

test [condition]
[ [condition] ]

機能説明

test ユーティリティーは、condition が示す条件を評価し、その結果を終了ステータスで表します。評価結果が真のときは終了ステータスが 0 に、偽のときは 1 になります。

test ユーティリティーの第 1 の形式は次のとおりです。

test [condition]

角括弧は condition が省略可能なオペランドであり、必ずしもコマンド行で指定する必要がないことを示します。

test ユーティリティーの第 2 の形式は次のとおりです。

[ [ condition ] ]

最初の開く角括弧 ([) は必須のユーティリティー名です。内側の角括弧は condition がオプションであることを示しています。最後の閉じる角括弧 (])は必須のオペランドです。

2G バイト (231 バイト) 以上のファイルに対する test の動作については、largefile(5) を参照してください。

test[ ユーティリティーは条件 condition を評価して、その値が真である場合は終了ステータスを 0 に設定します。そうでない場合はゼロ以外の値 (偽) に設定します。引数がない場合は、test[ ユーティリティーは終了ステータスをゼロ以外の値に設定します。アクセス権をテストするときは、プロセスの実効ユーザー ID が使用されます。

test と [ ユーティリティーに指定する引数、つまり、オペレータ、フラグ、および (最後の行を示す) 括弧はすべて、区切り文字で区切る必要があります。通常、これらの引数はスペースで区切られます。

オペランド

2 つの要素を持つ、次の形式のプライマリ:

-primary_operator primary_operand

これを、「単項プライマリ」と呼びます。3 つの要素を持つ、次のいずれかの形式のプライマリ:

primary_operand -primary_operator primary_operand
primary_operand primary_operator primary_operand

これを、「2 項プライマリ」と呼びます。

ファイルオペランド (-h-L プライマリを除く) がシンボリックリンクを示している場合、シンボリックリンクは展開され、test は展開後のファイルに実行されます。

自分のファイルをテストした場合でも (-r-w、または -x のテスト)、テストしたファイルのアクセス権に所有者ビットが設定されていない場合は、ファイルのアクセス権に「グループ」ビットまたは「その他」のビットが設定されていても、ゼロ以外 (偽) の終了ステータスが返されます。

=!= プライマリは単項プライマリよりも優先されます。=!= プライマリは常に引数をとります。したがって、=!= は単項プライマリの引数として使用できません。

condition を記述するために以下の基本式が使用できます。

-a file

ファイル file が存在すれば真。(sh では使用不可)

-b file

ファイル file が存在し、ブロック型特殊ファイルであれば真。

-c file

ファイル file が存在し、文字型特殊ファイルであれば真。

-d file

ファイル file が存在し、ディレクトリであれば真。

-e file

ファイル file が存在すれば真。(sh では使用不可)

-f file

ファイル file が存在し、そのファイルが通常ファイルであれば真。あるいは、/usr/bin/sh ユーザーが自分の PATH 環境変数内で /usr/bin よりも前に /usr/ucb を指定しており、file が存在し、そのファイルがディレクトリでなければ、test は真を返します。cshtest[ ビルトインは常に後者の動作を行います。

-g file

ファイル file が存在し、セットグループ ID フラグが設定されていれば真。

-G file

ファイル file が存在し、ファイルのグループがプロセスの実効グループ ID と一致していれば真。(sh では使用不可)

-h file

ファイル file が存在し、シンボリックリンクであれば真。

-k file

ファイル file が存在し、スティッキビットが設定されていれば真。

-L file

ファイル file が存在し、シンボリックリンクであれば真。

-n string

string の長さがゼロでなければ真。

-o option

オプション option がついていれば真。csh または sh では、このオプションは使用できません。

-O file

ファイル file が存在し、プロセスの実効ユーザー ID がそのファイルを所有していれば真。sh では、このオプションは使用できません。

-p file

ファイル file が名前付きパイプ (FIFO) であれば真。

-r file

ファイル file が存在し、読み取り可能であれば真。

-s file

ファイル file が存在し、サイズがゼロより大きければ真。

-S file

ファイル file が存在し、そのファイルがソケットであれば真。sh では、このオプションは使用できません。

-t [file_descriptor]

ファイル記述子番号が file_descriptor であるファイルがオープンされていて、端末装置に対応していれば真。file_descriptor が指定されていない場合、デフォルト値として 1 が使用されます。

-u file

ファイル file が存在し、セットユーザー ID フラグが設定されていれば真。

-w file

ファイル file が存在し、書き込み可能であれば真。真であっても、書き込みフラグが設定されていることを表すだけです。ファイルシステムが読み取り専用であれば、この条件が真であっても file は書き込み不可能です。

-x file

ファイル file が存在し、実行可能であれば真。真であっても、実行フラグが設定されていることを表すだけです。file がディレクトリの場合には、真は file が検索可能なことを表します。

-z string

文字列 string の長さがゼロであれば真。

file1 -nt file2

ファイル file1 が存在し、file2 よりも新しい場合は真。sh では、このオプションは使用できません。

file1 -ot file2

ファイル file1 が存在し、file2 よりも古い場合は真。sh では、このオプションは使用できません。

file1 -ef file2

ファイル file1file2 が存在し、同じファイルを参照している場合は真。sh では、このオプションは使用できません。

string

文字列 string が NULL 文字列でなければ、真です。

string1 = string2

文字列 string1string2 が等しければ真。

string1 != string2

文字列 string1string2 が等しくなければ真。

n1 -eq n2

数値 n1n2 が代数的に等しければ真。数値は C99/XPG6/SUS で指定された任意の形式の整数、浮動小数点、または浮動小数点定数 ([+/-]Inf、[+/-]NaN など) です。

n1 -ne n2

数値 n1n2 が代数的に等しくなければ真。数値は C99/XPG6/SUS で指定された任意の形式の整数、浮動小数点、または浮動小数点定数 ([+/-]Inf、[+/-]NaN など) です。

n1 -gt n2

数値 n1 が代数的に数値 n2 より大きければ真。数値は C99/XPG6/SUS で指定された任意の形式の整数、浮動小数点、または浮動小数点定数 ([+/-]Inf、[+/-]NaN など) です。

n1 -ge n2

数値 n1 が代数的に数値 n2 より大きいか等しければ真。数値は C99/XPG6/SUS で指定された任意の形式の整数、浮動小数点、または浮動小数点定数 ([+/-]Inf、[+/-]NaN など) です。

n1 -lt n2

数値 n1 が代数的に数値 n2 より小さければ真。数値は C99/XPG6/SUS で指定された任意の形式の整数、浮動小数点、または浮動小数点定数 ([+/-]Inf、[+/-]NaN など) です。

n1 -le n2

数値 n1 が代数的に数値 n2 より小さいか等しければ真。数値は C99/XPG6/SUS で指定された任意の形式の整数、浮動小数点、または浮動小数点定数 ([+/-]Inf、[+/-]NaN など) です。

condition1 -a condition2

condition1 および condition2 の両方が真であれば真。-a 2 項プライマリは左結合であり、-o 2 項プライマリよりも優先される。

condition1 -o condition2

condition1 または condition2 のどちらかが真であれば真。-o バイナリプライマリは左結合である。

これらの基本式は、以下の演算子と組み合わせて指定できます。

! condition

条件 condition が偽であれば真。

( condition )

condition が真であれば真。丸括弧 ( ) を使用すると、通常の優先順位や結合規則を変更できる。丸括弧はシェルにとっても意味を持つので、引用する必要があります。

演算子の優先順位を決めるアルゴリズム、および生成される戻り値は、test に渡す引数の数により異なります。ただし [...] 形式を使う場合、最終引数の右角括弧は、このアルゴリズムでは引数には含まれません。

以下のリストにおいて、$1$2$3$4 は、conditioncondition1、または condition2 として test に渡す引数を表します。

引数 0 個

偽 (1) で終了。

引数 1 個

$1 が空でなければ真 (0) で終了。NULL なら偽。

引数 2 個
  • $1! のとき、$2 が空なら真、$2 が空でなければ偽。

  • $1 が単項基本式のとき、単項テストの結果が真なら真、偽なら偽。

  • その他の場合、結果は不確定です。

引数 3 個
  • $2 が 2 項基本式のとき、$1$3 を対象に 2 項テストを実行。

  • $1! のとき、$2$3 の 2 つの引数に対するテストを否定形に。

  • その他の場合、結果は不確定です。

引数 4 個
  • $1! のとき、$2$3$4 の 3 つの引数に対するテストを否定形に。

  • その他の場合、結果は不確定です。

使用法

基本式と演算子が混在しているような、ユーザーが用意した入力データを処理する際、スクリプト側では十分な注意が必要です。スクリプトに対して入力データが生成されるケースをアプリケーション作成者がすべて理解していない限り、test "$1" -a "$2" というような記述は、test "$1" && test "$2" と変えた方がいいでしょう。ユーザーが $1! に設定し、$2 を空の文字列に設定したような場合の問題を防ぐためです。つまり移植性の高さが問題の場合には、test expr1 -a expr2 というような記述は test expr1 && test expr2 に変更し、 また、test expr1 -o expr2 の記述は test expr1 || test expr2 に変更してください。ただし、シェルでは &&-| | が同等の優先順位を持つのに対し、test では -a の方が o よりも優先順位が高いことに注意してください。

シェルコマンド言語では、グループ分け用に小括弧と中括弧が使用できます。

sh を使うときは、小括弧はエスケープ付きで記述しなければなりません。例:

test \( expr1 -a expr2 \) -o expr3

このコマンドは、 XSI 準拠のシステム以外では、必ずしも移植可能ではありません。この形式の代わりに、以下のように記述できます。

( test expr1 && test expr2 ) || test expr3

次に、以下の 2 つのコマンドを見てください。

test "$1"
test ! "$1"

古いシステムの一部では、このコマンドの動作は信頼性を欠くことがあります。つまりこのような string 条件を使い $1!(、または単項基本式に展開すると、その結果は保証できません。したがって、それぞれ以下のように記述する方がいいでしょう。

test -n "$1"
test -z "$1"

同様に、古いシステムでは以下のようなコマンドの信頼性は保証できません。

test "$response" = "expected string"

これは、次のどちらかの形式に変えるようにしてください。

test "X$response" = "Xexpected string"
test "expected string" = "$response"

2 番目の形式は、expected string が単項基本式とまぎらわしくなることはない、というのが前提です。つまり expected string の先頭文字が -(!= のいずれかのときは、1 番目の形式を使用してください。注記した事項を除き、前述の規則を使用すれば、前述の 3 つの比較形式はどのような入力データに対しても信頼性の高いものです。なお、どの形式でも文字列は引用符で囲んで記述する点に注意してください。

引数の数が 4 個を超えている場合、文字列比較の 2 項基本式 =!= はどの単項基本式よりも優先順位が高いので、引数が正しく指定されていないと処理結果は保証できません。たとえば次の例を見てください。

test -d $1 -o -d $2

ここで $1 の評価結果がディレクトリ名 = となった場合、先頭の 3 つの引数は文字列比較を表すものと見なされます。したがって 2 つ目の -d を検出したときに構文エラーとなります。 これを避けるには、次に示すどちらかの形式、できれば 2 番目の方を使用してください。

test \( -d "$1" \) -o \( -d "$2" \)
test -d "$1" || test -d "$2"

また引数が 4 個を超えているときに次のように指定したとします。

test "$1" = "bat" -a "$2" = "ball"

このとき $1 の評価結果が ( または ! だと構文エラーとなります。これを避けるには、次に示すいずれかの形式、できれば 3 番目を使用してください。

test "X$1" = "Xbat" -a "X$2" = "Xball"
test "$1" = "bat" && test "$2" = "ball"
test "X$1" = "Xbat" && test "X$2" = "Xball"

使用例

if の例では次の 3 つの状態が調べられ、3 つのすべてが真、または正常終了とみなされた場合、その結果が画面に出力されます。調べられる 3 つの内容は次のとおりです。

/usr/bin/test

例 1 /usr/bin/test の使用

ディレクトリが存在しなければ mkdir を実行します。

test ! -d tempdir && mkdir tempdir

読み取り不可になるまで少し待つ。

while test -r thefile
do
   sleep 30
done
echo'"thefile" is no longer readable'

引数が 3 つの文字列 (2 つは変形) のうちの 1 つであり、test コマンドの開く角括弧バージョン ([) を使用していればコマンドを実行します。

if [ "$1" = "pear" ] || [ "$1" = "grape" ] || [ "$1" = "apple" ]
then
    command
fi
case "$1" in
    pear|grape|apple) command;;
esac

例 2 /usr/bin/test での -e オプションの使用

実際に sh-e オプションを使用する場合、次のように /usr/bin/test を使用します。

if [ ! -h $PKG_INSTALL_ROOT$rLink ] && /usr/bin/test -e
$PKG_INSTALL_ROOT/usr/bin/$rFile ; then
    ln -s $rFile $PKG_INSTALL_ROOT$rLink
fi

test 組み込みコマンド

以下の例では、Bourne シェルの if に続いて test 組み込みコマンドの 2 つの形式を記します。

例 3 sh 組み込みコマンドの使用

ZERO=0 ONE=1 TWO=2 ROOT=root

if  [ $ONE -gt $ZERO ]

[ $TWO -eq 2 ]

grep $ROOT  /etc/passwd >&1 > /dev/null  # discard output

then

    echo "$ONE is greater than 0, $TWO equals 2, and $ROOT is" \
          "a user-name in the password file"

else

    echo "At least one of the three test conditions is false"        
fi

例 4 test 組み込みコマンドの使用

test 組み込みコマンドの例

test `grep $ROOT /etc/passwd >&1 /dev/null`   # discard output 

echo $?    # test for success
[ `grep nosuchname /etc/passwd >&1 /dev/null` ]

echo $?    # test for failure

csh

例 5 csh 組み込みコマンドの使用

@ ZERO = 0; @ ONE = 1; @ TWO = 2;  set ROOT = root
grep $ROOT  /etc/passwd >&1 /dev/null  # discard output         
    # $status must be tested for immediately following grep 
if ( "$status" == "0" && $ONE > $ZERO && $TWO == 2 ) then
       echo "$ONE is greater than 0, $TWO equals 2, and $ROOT is" \
             "a user-name in the password file"
 endif

ksh88

例 6 ksh88/ksh 組み込みコマンドの使用

ZERO=0 ONE=1 TWO=$((ONE+ONE)) ROOT=root         
if  ((ONE > ZERO))            # arithmetical comparison
 [[ $TWO = 2 ]]                # string comparison
 [ `grep $ROOT  /etc/passwd >&1 /dev/null` ] # discard output        
then 
     echo "$ONE is greater than 0, $TWO equals 2, and $ROOT is" \
             "a user-name in the password file"

else
     echo "At least one of the three test conditions is false"
fi

環境変数

test の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANGLC_ALLLC_CTYPELC_MESSAGES、および NLSPATH

終了ステータス

次の終了ステータスが返されます。

0

condition の評価結果は真だった。

1

condition の評価結果は偽だった、または condition が指定されていなかった。

>1

エラーが発生した。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

/usr/bin/test、csh、ksh88、sh

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実
標準
standards(5) を参照してください。

ksh

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
不確実

関連項目

csh(1), ksh(1), ksh88(1), sh(1), test(1B), attributes(5), environ(5), largefile(5), standards(5)

注意事項

-f オプションの代替である not-a-directory は BSD アプリケーションの移行を補助するものであり、将来のリリースではサポートされなくなる可能性があります。

XPG4 sh, ksh, ksh

次のような算術式を使用します。

$(( x > 3.1 )) #

次の代わりに

$ /usr/bin/test "$x" -gt 3.1 # )

2 つの浮動小数点変数、または定数と浮動小数点変数を比較して、(base16 から base10 への変換による) 丸め誤差が結果に影響を与えることを避ける場合です。さらに、XPG4 shksh88、および ksh での組み込み演算のサポートは、比較するたびに文字列を明示的に変換する必要がないため、大幅に高速になります。