|
|
1.1 root 1:
2:
3: test Command test
4:
5:
6:
7:
8: Evaluate conditional expression
9:
10: tteesstt _e_x_p_r_e_s_s_i_o_n ...
11:
12: tteesstt evaluates an _e_x_p_r_e_s_s_i_o_n, which consists of string
13: comparisons, numerical comparisons, and tests of file attributes.
14: For example, a tteesstt command might be used within a shell command
15: file to test whether a certain file exists and is readable. The
16: logical result (true or false) of the _e_x_p_r_e_s_s_i_o_n is returned by
17: the command, for use by a shell construct such as iiff.
18:
19: _e_x_p_r_e_s_s_i_o_n is constructed from the following elements, which are
20: true if the given condition holds and false if not:
21:
22: _e_x_p_1 -aa _e_x_p_2
23: Both expressions _e_x_p_1 and _e_x_p_2 are true.
24:
25: -bb _f_i_l_e _f_i_l_e is a block-special device. kksshh only.
26:
27: -cc _f_i_l_e _f_i_l_e is a character-special file. kksshh only.
28:
29: -dd _f_i_l_e _f_i_l_e exists and is a directory.
30:
31: _f_i_l_e_1 -eeff _f_i_l_e_2
32: _f_i_l_e_1 is the same file as _f_i_l_e_2. kksshh only.
33:
34: _n_1 -eeqq _n_2 Numbers _n_1 and _n_2 are equal.
35:
36: -ff _f_i_l_e _f_i_l_e exists and is not a directory.
37:
38: -gg _f_i_l_e File mode has sseettggiidd bit. kksshh only.
39:
40: _n_1 -ggee _n_2 Number _n_1 is greater than or equal to _n_2.
41:
42: _n_1 -ggtt _n_2 Number _n_1 is greater than _n_2.
43:
44: -kk _f_i_l_e File mode has sticky bit. kksshh only.
45:
46: -LL _f_i_l_e File is a symbolic link. kksshh only.
47:
48: _n_1 -llee _n_2 Number _n_1 is less than or equal to _n_2.
49:
50: _n_1 -lltt _n_2 Number _n_1 is less than _n_2.
51:
52: -nn _s_t_r_i_n_g _s_t_r_i_n_g has nonzero length.
53:
54: _n_1 -nnee _n_2 Numbers _n_1 and _n_2 are not equal.
55:
56: _f_i_l_e_1 -nntt _f_i_l_e_2
57: _f_i_l_e_1 is newer than kksshh only.
58:
59: _e_x_p_1 -oo _e_x_p_2
60: Either expression _e_x_p_1 or _e_x_p_2 is true. -aa has greater
61: precedence than -oo.
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
67:
68:
69: test Command test
70:
71:
72:
73:
74: _f_i_l_e_1 -oott _f_i_l_e_2
75: _f_i_l_e_1 is older than _f_i_l_e_2. kksshh only.
76:
77: -pp _f_i_l_e _f_i_l_e is a named pipe. kksshh only.
78:
79: -rr _f_i_l_e _f_i_l_e exists and is readable.
80:
81: -ss _f_i_l_e _f_i_l_e exists and has nonzero size.
82:
83: -tt [_f_d] _f_d is the file descriptor number of a file which is
84: open and a terminal. If no _f_d is given, it defaults to
85: the standard output (file descriptor 1).
86:
87: -uu _f_i_l_e File mode has sseettuuiidd set. kksshh only.
88:
89: -ww _f_i_l_e _f_i_l_e exists and is writable.
90:
91: -xx _f_i_l_e _f_i_l_e exists and executable. kksshh only.
92:
93: -zz _s_t_r_i_n_g _s_t_r_i_n_g has zero length (is a null string).
94:
95: _s_t_r_i_n_g _s_t_r_i_n_g has nonzero length.
96:
97: _s_t_r_i_n_g_1 = _s_t_r_i_n_g_2
98: _s_t_r_i_n_g_1 is equal to _s_t_r_i_n_g_2.
99:
100: ! _e_x_p Negates the logical value of expression _e_x_p.
101:
102: _s_t_r_i_n_g_1 != _s_t_r_i_n_g_2
103: _s_t_r_i_n_g_1 is not equal to _s_t_r_i_n_g_2.
104:
105: (_e_x_p) Parentheses allow expression grouping.
106:
107: ***** Example *****
108:
109: The following example uses the tteesstt command to determine whether
110: a file is writable.
111:
112:
113: if test ! -w /dev/lp
114: then
115: echo The line printer is inaccessible.
116: fi
117:
118:
119: Under COHERENT, the command `[' is linked to tteesstt. If invoked as
120: `[', tteesstt checks that its last argument is `]'. This allows an
121: alternative syntax: simply enclose _e_x_p_r_e_s_s_i_o_n in square brackets.
122: For example, the above example can be written as follows:
123:
124:
125:
126:
127:
128:
129:
130: COHERENT Lexicon Page 2
131:
132:
133:
134:
135: test Command test
136:
137:
138:
139: if [ ! -w /dev/lp ]
140: then
141: echo The line printer is inaccessible.
142: fi
143:
144:
145: For a more extended example of the square-bracket syntax, see sshh.
146:
147: ***** See Also *****
148:
149: ccoommmmaannddss, eexxpprr, ffiinndd, iiff, kksshh, sshh, wwhhiillee
150:
151: ***** Notes *****
152:
153: The Korn shell's version of this command is based on the public-
154: domain version written by Erik Baalbergen and Arnold Robbins.
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196: COHERENT Lexicon Page 3
197:
198:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.