Copyright(c) by Galaxy CD – http://www.galaxycd.com
51
Baøi 11 Laäp trình möùc cô sôû döôùi UNIX
Noäi dung: caùc pheùp thöû, so saùnh, caùc pheùp tính soá hoïc trong Shell, laäp trình caùc caáu
truùc coù ñieàu kieän, laäp trình caùc voøng laëp.
11.1 Caùc pheùp thöû (test) trong Shell
11.1.1 Giaù trò traû veà cuûa moät leänh
Sau khi moät leänh thöïc hieän xong, bao giôø cuõng coù moät giaù trò traû veà (return code). Giaù
trò naøy chöùa trong bieán
$?
.
Neáu moät leänh ñöôïc thöïc hieän toát, giaù trò traû veà laø 0 (true : ñuùng).
Neáu moät leänh khoâng ñöôïc thöïc hieän toát, giaù trò traû veà khaùc 0 (false: sai).
Thí duï:
$
cat fac
cat: cannot open fac
$
echo $?
2
$
cat file
I am a file
$
echo $?
0
Chuù thích: leänh
exit[n]
cho pheùp ra khoûi moät shell_script vôùi giaù trò traû laïi laø n.
11.1.2 Söû duïng leänh
test:
+ Leänh
test
ñöôïc duøng ñeå laäp trình moät ñieàu kieän trong caáu truùc hoaëc trong voøng laëp:
Coù 3 tröôøng hôïp duøng leänh test:
-
kieåm tra tính chaùt cuûa caùc file
-
so saùnh giöõa caùc soá
-
kieåm tra caùc xaâu kyù töï
+ Cuù phaùp leänh test:
test expression
hoaëc
[expression]
Trong caùc thí duï sau ñaây, hai caùch duøng treân ñeàu ñöôïc söû duïng nhö nhau.
+Kieåm tra tính chaát caùc file:
Sau khi test, giaù trò traû veà laø 0 (true) hoaëc khaùc 0 (false)
test
-f
filename
0
neáu file toàn taïi vaø laø file thöôøng
[-d
filename]
0
neáu file toàn taïi vaø laø file thö muïc
[-r
filename]
0
neáu file toàn taïi vaø chæ ñoïc ñöôïc