1) SIGHUP 2) SIGIN 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
3.8. Tài li u Here
UNIX và Linux cung c p c ch t đ ng hóa mơ ph ng vi c nh p li u gõ vào t bàn phím b ng tài li u here (Here Document). Ta đ s n các phím hay chu i c n gõ trong m t t p tin và chuy n h ng t p tin này cho l nh c n th c thi. Nó s ti p nh n và đ c n i dung t p tin nh nh ng gì đã gõ vào t bàn phím.
Ví d , khi gõ l nh cat, nó s ch nh p d li u gõ vào t bàn phím. N u khi script th c thi khơng có m t ng i dùng đó thì sao? Q trình t đ ng c a script s d ng l i ch đ n khi ta xu t hi n đ gõ d li u vào. C ch tài li u here giúp th c hi n t đ ng nh p li u nh sau:
50
Ví d 3-34 cat_here.sh
#! /bin/sh
cat > test.txt <<!YOURLABEL! Hello
This is
here document !YOURLABEL!
K t q a khi th c thi cat_here.sh, t p test.txt đ c t o ra. V i n i dung là chu i Hello This is ... ta không c n ph i dùng tay nh p li u cho l nh cat.
Tài li u here yêu c u đ t cú pháp gi a nhãn b t đ u và nhãn k t thúc. Trong ví d trên, nhãn b t đ u là !YOURLABEL! (l u ý đ n ký t << đ u dùng đ cho bi t n i b t đ u c a tài li u Here), nhãn k t thúc là !YOURLABEL!. D u ! hai bên nhãn
YOURLABEL ch đ d dàng nh n ra nhãn mà thôi, trong tr ng h p n i dung d li u c a có chu i YOURLABEL thì c p ! ! c ng dùng đ phân bi t riêng tên nhãn c a ng i dùng.
Có th dùng hàng lo t l nh echo đ chuy n h ng k t xu t ra file. Tuy nhiên tài li u here h u d ng và ti n l i h n. Here không đ n thu n ch chuy n nh p li u ra file, nó cung c p kh n ng t ng tác v i chính ch ng trình ng d ng. Ví d , khi c n so n th o v n b n b ng l nh ed, các thao tác c n làm là gõ ed t dòng l nh đ hi n c a s so n th o. Nh p vào d li u v n b n th c hi n ch nh s a, xóa, sau đó ch m d t, đóng màn hình so n th o tr v d u nh c. Th c hi n v i tài li u here ta s làm nh sau:
Hãy t o t p tin a_text_flle.txt có n i dung This is line 1
This is line 2 This is line 3 This is line 4
script auto_edit.sh d i đây s m trình ed và lo i b dịng 3 trong t p v n b n v a t o, thay đ i và ch nh s a n i dung dịng 4. Ví d 3-35 auto_edit.sh #!/bin/sh . ed a_text_file << !AutoEdit! 3 d .,\$s/is/was w q !AutoEdit! K t q a k t xu t là n i dung a_text_flle.txt s b đ i thành This s line 1
51 This is line 2
This was line 4 Cách ch ng trình làm vi c
Sau khi chuy n n i dung t p cho ed b ng l nh ed a_text_file.txt n i dung n m gi a c p nhãn !AutoEdit! đ i di n cho các ký t gõ vào t bàn phím. Hãy l u ý \$s đ c dùng đ yêu c u shell di n d ch đây là chu i $s (m t l nh tìm ki m c a ed) ch khơng ph i bi n mang tên s.