เอกสารนี้จัดทำขึ้นเพื่อแนะนำ และใช้สำหรับการอ้างอิงให้กับผู้ที่จะเขียนโปรแกรมบน Shell โดยจะกล่าวถึงโครงสร้างโดยทั่วไปของ Shell แสดงการใช้คำสั่งต่างๆ พร้อมตัวอย่างประกอบ ทั้งนี้ตัวอย่างดังกล่าวจะเปรียบเทียบระหว่าง bash , ksh และ tcsh เป็นหลัก โดยข้อมูลในเอกสารนี้จะเน้นเพียงข้อมูลที่เป็นมาตรฐานของ Shell ทั่วไปเท่านั้น เนื่องจากในปัจจุบัน Shell หมายๆ ตัวได้มีการปรับปรุงให้ทำงานได้กว้างมากขึ้น และ เขียนง่ายยิ่งขึ้นเช่น bash บน Linux ซึ่งจะรวมความสามารถของ ksh และ tcsh หลายอย่างไว้ด้วยกัน เป็นต้น
ลักษณะทั่วไปของ Shell
หน้าที่พื้นฐานของ Shell โดยทั่วไปนั้นคือการรับคำสั่งจาก User เพื่อทำการบอก OS ให้ Load และ Run Program ต่างๆ อย่างไรก็ตามได้มีการพัฒนาให้ Shell มีความสามารถในการประมวลผลคำสั่งต่างๆ เพื่อให้ทำงานในลักษณะของ Batch ได้ ทั้งนี้โครงสร้างของโปรแกรมต่างๆ หรือ Shell นั้นจะประกอบด้วยตัวแปรระบบ หรือ สภาวะแวดล้อม(Envirenment) ซึ่งพร้อมที่จะส่งให้โปรแกรมอื่นๆ ประมวลผลต่อ ประโยคเงื่อนไขต่างๆ ระบบ Profile สำหรับวัดเวลาในการประมวลผลของโปรแกรมต่างๆ และ User Defined Function
ในการวัดเวลาที่ใช้ในการทำงานคำสั่งต่างๆ ของ Unix นั้นสามารถทำได้โดยใส่ time นำหน้าคำสั่งที่ต้องการประมวลผล ซึ่งโปรแกรมจะบอก OS ให้ทำการจับเวลา และ รายงานผลเวลาที่ใช้ในการประมวลผลหลังจากทำงานเสร็จ เช่น
time ls -al /bin/*
สำหรับกรณี Shell บน Unix นั้น การเขียนคำสั่งแต่ละคำสั่งจะต้องจบคำสั่ง ด้วยบรรทัดใหม่ หรือ เครื่องหมาย semi-colon เสมอ “;” และกรณีที่คำสั่งมีความยาวมาก (ไม่จบภายใน 1 บรรทัด) ให้จบบรรทัดด้วยเครื่องหมาย “” แล้วพิมพ์ต่อในบรรทัดถัดไป เช่น
echo "Test"; ls;
echo "Hello
world"
การเขียน Comment ใน Shell Script จะใช้เครื่องหมาย “#”
ทั้งนี้ในการเขียนโปรแกรมที่เป็นภาษา Script ต่างๆ บน Unix นั้น ในบรรทัดแรกเราควรจะระบุชื่อโปรแกรมที่จะทำการประมวลผล Script นั้นๆ ไว้ด้วยเช่น
#! /bin/ksh
หรือ กรณีเป็น Perl อาจจะเขียนเป็น
#! /usr/bin/perl
เป็นต้น
การใช้งาน Variable / Environment
บนระบบ OS โดยทั่วไปมักจะมี Environment หรือ System Variable เพื่อส่งผ่านค่าระหว่างโปรแกรมต่างๆ ภายในระบบ เสมอ ซึ่งโดยทั่วไปเราจะอ่านค่า Environment (ของ OS เกือบทุกตัว) ได้โดยการใช้คำสั่ง set
ตัวอย่างการตั้งค่า Variable ใน Shell เช่น
| bash / ksh | tcsh |
|
myname="Krerk Piromsopa" |
set myname="Krerk Piromsopa" |
นอกจากนี้เรายังสามารถนำผลลัพธ์จากการ Run Programm อื่นๆ มาเป็นค่า Variable ได้อีกด้วย โดยใช้ Back Quote แทน หรือ Run คำสั่งภายในเครื่องหมาย $(command) เช่น
| bash / ksh | tcsh |
| list = `ls` # หรือ list=$(ls) |
set list = `ls` # หรือ set list=$(ls) |
ทั้งนี้หากต้องการให้ค่า Variable หรือ Environment คงอยู่หลังจากที่ Run Shell สามารถทำได้โดยการ export เช่น
export myname,count
นอกจากนี้ยังมีตัวแปรระบบที่จะใช้สำหรับการอ้างอิงในโปรแกรม Shell ได้อีกด้วย เช่น
| ตัวแปร | ความหมาย |
| $# | แสดงจำนวน Parameter ที่ส่งมาให้กับระบบ |
| $? | เก็บค่าที่ได้จากประมวลผลคำสั่งก่อนหน้านี้ |
| $0 | แสดงชื่อของ โปรแกรมที่กำลังประมวลผลอยู่ |
| $* | เก็บค่า Parameter ทุกตัวที่ใช้ในการประมวลผล ($1 $2 ....) |
| "$@" | เก็บค่า Parameter ทุกตัวที่ใช้ในการประมวลผล ("$1" "$2" ....) |
การใช้งาน Variable ทุกตัวนั้นจะเป็น Implicit Declaration กล่างคือผู้ใช้ไม่จำเป็นต้องประกาศตัวแปร เช่นในภาษา C หรือ ภาษาชั้นสูงอื่นๆ และ เมื่อต้องการยกเลิกตัวแปรนั้นสามารถทำได้โดยใช้คำสั่ง unset varname เช่น
unset myname
test และ expression
บน bash และ ksh จะมีคำสั่ง Test และการเขียนเงื่อนไขในการตรวจสอบ Expression ต่างๆ ในการเขียนประโยคเงื่อนไขต่าง ซึ่งมีโครงสร้างการเขียนดังนี้
test expression
หรือ
[ expression ]
สำหรับ tcsh นั้นจะไม่มีคำสั้ง test แต่จะมีการนำ expression เพื่อไปใช้ในการประมวผลผลคำสั่งต่างๆ เช่นกัน
ทั้งนี้ expression บน bash กับ ksh และ tcsh นั้นจะมีโครงสร้างที่แตกต่างกัน ดังอธิบายได้ดังต่อไปนี้
| bash / ksh | tcsh | ความหมาย |
| คำสั่งเกี่ยวกับจำนวนเต็ม | ||
| int1 -eq int2 | int1 == int2 | เป็นจริงเมื่อ int1 เท่ากับ int2 |
| int1 -ge int2 | int1 >= int2 | เป็นจริงเมื่อ int1 มากกว่าหรือเท่ากับ int2 |
| int1 -gt int2 | int1 > int2 | เป็นจริงเมื่อ int1 มากกว่า int2 |
| int1 -le int2 | int1 <= int2 | เป็นจริงเมื่อ int1 น้อยกว่าหรือเท่ากับ int2 |
| int1 -lt int2 | int1 < int2 | เป็นจริงเมื่อ int1 น้อยกว่า int2 |
| int1 -ne int2 | int1 != int2 | เป็นจริงเมื่อ int1 ไม่เท่ากับint2 |
| คำสั่งเกี่ยวกับ String | ||
| str1 = str2 | str1 == str2 | เป็นจริงเมื่อ str1 เหมือนกับ str2 |
| str1 != str2 | str1 != str2 | เป็นจริงเมื่อ str1 ไม่เหมือนกับ str2 |
| str | เป็นจริงเมื่อ str ไม่เป็น null | |
| -n str | เป็นจริงเมื่อ str มีความยาวมากกว่า 0 | |
| -z str | เป็นจริงเมื่อ str มีความยาวเป็น 0 | |
| คำสั่งเกี่ยวกับ file | ||
| -d filename | -d filename | เป็นจริงเมื่อ filename เป็น directory |
| -f filename | -f filename | เป็นจริงเมื่อ filename เป็น file |
| -r filename | -r filename | เป็นจริงเมื่อ filename อ่านได้โดยโปรแกรม |
| -s filename | เป็นจริงเมื่อ filename มีขนาดไม่เป็น 0 | |
| -w filename | -w filename | เป็นจริงเมื่อ filename เขียนได้โดยโปรแกรม |
| -x filename | -x filename | เป็นจริงเมื่อ filename run ได้โดยโปรแกรม |
| -e filename | เป็นจริงเมื่อ filename มีชื่ออยู่ | |
| -o filename | เป็นจริงเมื่อ filename เป็นของผู้ใช้ปัจจุบัน | |
| -z filename | เป็นจริงเมื่อ filename มีขนาดเป็น 0 | |
| คำสั่งเกี่ยวกับ Logical อื่นๆ | ||
| ! expr | ! expr | เป็นจริงเมื่อ exp เป็นเท็จ |
| exp1 -a exp2 | exp1 && exp2 | เป็นจริงเมื่อ exp1 และ exp2 เป็นจริง |
| exp1 -o exp2 | exp1 || exp2 | เป็นจริงเมื่อ exp1 หรือ exp2 เป็นจริง |
เงื่อนไข if
โครงสร้าง
| bash / ksh | tcsh |
|
if [expression ] |
if (expression) then |
ทั้งนี้จะมี elif หรือ ไม่มี else ก็ได้
ตัวอย่างการใช้งาน เช่น
#! /bin/ksh
if [ -f .signature ]
then
echo "There is .signature file in
this current directory"
else
echo "File .signature could not be
found.
fi
เงื่อนไข case หรือ switch
โครงสร้าง
| bash / ksh | tcsh |
|
case string in |
switch(string) |
ในกรณีของ bash และ ksh นั้น จะใช้ ;; แทน break
ตัวอย่างการใช้งาน เช่น
#! /bin/ksh
# Sample switch case
if [ $# -lt 2 ]
then
echo "Using : $0 [a | b | c] filename"
else
case $1 in
"a" | "A")
cat $2;;
"b" | "B")
&nsbp; more $2;;
"c" | "C")
less $2;;
*)
echo "I Don't understand $1"
esac fi
เงื่อนไข for
โครงสร้าง
| bash / ksh | tcsh |
|
for var in list |
foreach var (list) commands end |
ตัวอย่างการใช้งาน เช่น
#! /bin/ksh
# Sample for
for x in "a " "b" "x*"
do
if [ -f "$x" ]
then
echo "--- found $x ---"
else
echo "--- Not found $x ---"
fi
เงื่อนไข while
โครงสร้าง
| bash / ksh | tcsh |
| while [ expression ] do commands done |
while (expression) commands end |
ตัวอย่างการใช้ while เช่น
#! /bin/ksh
count=1
while [ -n "$*" ]
do
echo "This is parameter no $count $1"
shift
count=`expr $count+1`
done
เงื่อนไข until
โครงสร้าง
| bash / ksh | tcsh |
| until [ expression ] do commands done |
ไม่สนับสนุน |
เงื่อนไข repeat
| bash / ksh | tcsh |
| ไม่สนับสนุน | repeat count command |
ตัวอย่างการใช้ repeat เช่น
#! /bin/tcsh
repeat $num echo -n "+"
echo ""
คำสั่งอื่นๆ ที่ช่วยให้เขียน Interactive Shell Script ได้ง่ายขึ้น
คำสั่ง read
ใช้สำหรับอ่านค่าตัวแปรจาก Standard Input เช่น
#! /bin/ksh
echo -n "Enter FirstName Lastname"
read x y
echo ""
echo "Your firstname is $y, $x."
คำสั่ง echo
ใช้เพื่อการแสดงข้อความ
คำสั่ง shift
ใช้สำหรับการ Shift ค่าตัวแปรใน $* ไป 1 ตำแหน่ง
การสร้างคำสั่งใหม่ (Function)
โครงสร้าง
| bash / ksh | tcsh |
|
[function] fname { |
ไม่สนับสนุน |
ซึ่งเราสามารถเรียกใช้ Function ได้โดย
fname [ parm1 parm2 parm3 ... ]
ตัวอย่างเช่น
#! /bin/bash
print () {
echo $1 $2;
}
a=10;
b=20;
print $a $b
การประมวลผลทางคณิตศาสตร์ และ expression
เราสามารถประมวลผลบวกลบคูณหาร หรือ expression ต่างๆ ได้โดยใช้โปรแกรม expr ช่วย เช่นในกรณีของ bash เราสามารถใช้ a=$(($a + 1 )) แทนได้เลย
ข้อควรระวังคือ จะต้องมีการเว้นวรรคระหว่าง ตัวแปร ค่าคงที่ และ
เครื่องหมาย (มิเช่นนั้น จะได้ผลลัพธ์เป็น string ต่อกัน)
เครื่องหมายและการปฏิบัติการที่ใช้ได้ใน expr คือ +, -, *, / , % (modulo
หรือ หารเอาเศษ) นอกจากนี้ยังมีการเปรียบเทียบต่างๆ เช่น =, \<, \>,
\<=, \>=, และ != (กรณีใช้กับ bash $(( expression ))
ให้นำเครื่องหมาย \ ออก การเปรียบเทียบเหล่านี้จะให้ผลลัพธ์เป็น 0
หากเป็นเท็จ และ 1 หากเป็นจริง
เกร็ดเล็กน้อยเกี่ยวกับการใช้ expr
expr1 \| expr2
จะแสดงผลลัพธ์จาก expr2 หาก expr1 เป็น 0 หรือ NULL เช่น
expr 1 - 1 \| "zero"
จะได้ผลลัพธ์เป็น "zero" เนื่องจาก 1 - 1 = 0 เป็นต้น
expr1 \& expr2
จะแสดงผลลัพธ์จาก expr1 หาก ไม่มีอันใดเป็น 0 หรือ NULL เช่น
expr valid \& 3 - 2 \& 4
จะได้ผลลัพธ์เป็น "valid" เนื่องจากไม่มี expression ใด เป็น 0 เป็นต้น
expr1 : expr2
จะเปรียบเทียบ expr1 กับ expr2 ตามมาตรฐาน regular expression เช่น
expr $HOME : ".*home.*"
จะตรวจสอบว่ามีคำว่า home อยู่ใน $HOME หรือไม่ เป็นต้น
เอกสารอ้างอิง
| Comment1 | ||
| เยี่ยม กำลังต้องการเลย ขอบคุณมาก ๆ ครับ ตั้งใจพัฒนาต่อไนครับ | ||
| From:นายที <ninetea< at >hotmail.com> | Date: 2005-05-11 10:41:18 | |
| Comment2 | ||
| ขอบคุณมากคะ จะเข้ามาอ่านอีกนะคะ รอ บทต่อไปคะ ^_______^ | ||
| From:กระต่าย <กระต่าย< at >hotmail.com> | Date: 2005-05-19 09:36:32 | |
| Comment3 | ||
| ขอบคุณ ด้วยอีกคนนะครับ ^^ | ||
| From:นุ <> | Date: 2005-06-21 10:24:17 | |
| Comment4 | ||
| ช่วยได้เยอะเลยขอบคุณมาก | ||
| From:เร <> | Date: 2006-07-03 13:05:25 | |
| Comment5 | ||
| ขอบคุณครับผม เป็นประโยชน์มากเลยครับ | ||
| From:x_za <> | Date: 2006-07-26 23:16:00 | |
| Comment6 | ||
| อ่านไม่รู้เรื่องเลย น่าจะเขียนให้เข้าใจมากกว่านี้ | ||
| From:โลนัน <ronunkong< at >hotmail> | Date: 2006-07-30 00:05:28 | |
| Comment7 | ||
| Thank You Very Much `^ ^ | ||
| From:AiPaTz <l3aipat< at >hotmail.com> | Date: 2006-09-18 01:58:39 | |
| Comment8 | ||
| ขอบคุณมากๆนะคะ มีประโยชน์ และได้รับควารู้มากค่ะ | ||
| From:ลักษณียา <dogkes< at >chaiyo.com> | Date: 2006-09-25 13:51:16 | |
| Comment9 | ||
| <h1>เยี่ยม</h1> | ||
| From:<h1>เย่ยม</h1> <> | Date: 2006-11-19 21:10:30 | |
| Comment10 | ||
| ช่วยแนะนำหนังสือที่น่าสนใจเกี่ยวกับเรื่องนี้หน่อยได้มั้ยครับ ขอขอบคุณล่วงหน้านะครับ .... | ||
| From:Dnt_Upload <m_zeed< at >hotmail.com> | Date: 2006-11-20 22:58:25 | |
| Comment11 | ||
| มีเว็บน่าสนใจเกี่ยวกับ Shell Script มากมายครับ เช่น tldp.org/LDP/abs/html/ นอกจากนี้ยังมีหนังสือ เช่น Classic Shell Scripting by Arnold Robbins and Nelson H.F. Beebe Learning the bash Shell (Nutshell Handbooks) by Cameron Newham and Bill Rosenblatt ลอง search จากเว็บดูนะครับ หวังว่าคงจะได้ตอบคำถาม | ||
| From:krerk <> | Date: 2006-11-21 03:23:25 | |
| Comment12 | ||
| Chto s holodami ne v lada. Aristides Albertina. | ||
| From:Aristides Albertina <istidabetina< at >zhk.net> | Date: 2007-05-18 08:11:56 | |
| Comment13 | ||
| MToik | ||
| From:None <cialis< at >froko1000.com> | Date: 2007-06-10 17:08:10 | |
| Comment14 | ||
| I try it | ||
| From:None <levitra< at >6548hjokoly.org> | Date: 2007-06-10 17:08:10 | |
| Comment15 | ||
| Great site. Keep doing. where are you google? i miss you! | ||
| From:Unknown <saher< at >yahoo.com> | Date: 2007-06-20 19:30:07 | |
| Comment16 | ||
| Great site. Keep doing. where are you google? i miss you! | ||
| From:Unknown <saher< at >gmail.com> | Date: 2007-06-21 11:56:51 | |
| Comment17 | ||
| Good work! | ||
| From:Good work! <Good work! > | Date: 2007-06-27 11:26:42 | |
| Comment18 | ||
| Hi great site great work thank you! | ||
| From:Hi great site great <Hi great site great work thank> | Date: 2007-06-27 12:10:27 | |
| Comment19 | ||
| Hi great site great work thank you! | ||
| From:Hi great site great <Hi great site great work thank> | Date: 2007-06-27 12:10:33 | |
| Comment20 | ||
| Very interesting site. Hope it will always be alive! | ||
| From:Very interesting sit <Very interesting site. Hope it> | Date: 2007-06-27 12:15:18 | |
| Comment21 | ||
| Very good site. Thank you. | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-06-28 11:51:18 | |
| Comment22 | ||
| I like this site! | ||
| From:I like this site! <I like this site! > | Date: 2007-06-28 13:04:27 | |
| Comment23 | ||
| Hi great site great work thank you! | ||
| From:Hi great site great <Hi great site great work thank> | Date: 2007-06-29 06:17:22 | |
| Comment24 | ||
| Keep working! | ||
| From:Keep working! <Keep working! > | Date: 2007-06-29 08:28:12 | |
| Comment25 | ||
| I like this site! | ||
| From:I like this site! <I like this site! > | Date: 2007-06-30 00:21:40 | |
| Comment26 | ||
| Good work! | ||
| From:Good work! <Good work! > | Date: 2007-06-30 01:31:10 | |
| Comment27 | ||
| ,Qg==,LTE=,LTE=,,SUw=,LTE=,MzU=,MTg=,, | ||
| From:<Default> <cheap< at >swimplanet.org> | Date: 2007-06-30 14:06:52 | |
| Comment28 | ||
| I like this site! | ||
| From:I like this site! <I like this site! > | Date: 2007-06-30 14:47:36 | |
| Comment29 | ||
| Good work! | ||
| From:Good work! <Good work! > | Date: 2007-06-30 15:47:56 | |
| Comment30 | ||
| Very good site. Thank you. | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-06-30 16:47:20 | |
| Comment31 | ||
| Beautifully crafted! | ||
| From:Beautifully crafted! <Beautifully crafted! > | Date: 2007-06-30 17:55:38 | |
| Comment32 | ||
| Great site. Keep doing. | ||
| From:Great site. Keep doi <Great site. Keep doing. > | Date: 2007-07-01 05:35:36 | |
| Comment33 | ||
| I like this site! | ||
| From:I like this site! <I like this site! > | Date: 2007-07-01 06:42:01 | |
| Comment34 | ||
| Hi great work great site! visit my homepage thank you. | ||
| From:Hi great work great <Hi great work great site! visi> | Date: 2007-07-01 07:48:12 | |
| Comment35 | ||
| Hi great work great site! visit my homepage thank you. | ||
| From:Hi great work great <Hi great work great site! visi> | Date: 2007-07-01 08:47:04 | |
| Comment36 | ||
| Hi great site great work thank you! | ||
| From:Hi great site great <Hi great site great work thank> | Date: 2007-07-01 20:13:20 | |
| Comment37 | ||
| Keep working! | ||
| From:Keep working! <Keep working! > | Date: 2007-07-01 21:12:49 | |
| Comment38 | ||
| Very interesting site. Hope it will always be alive! | ||
| From:Very interesting sit <Very interesting site. Hope it> | Date: 2007-07-01 22:14:30 | |
| Comment39 | ||
| Good work! | ||
| From:Good work! <Good work! > | Date: 2007-07-01 23:20:29 | |
| Comment40 | ||
| Very good site. Thank you. | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-07-02 10:40:49 | |
| Comment41 | ||
| If you have to do it, you might as well do it right | ||
| From:If you have to do it <If you have to do it, you migh> | Date: 2007-07-02 12:48:03 | |
| Comment42 | ||
| Great site. Keep doing. | ||
| From:Great site. Keep doi <Great site. Keep doing. > | Date: 2007-07-02 13:56:31 | |
| Comment43 | ||
| Great site. Keep doing. | ||
| From:Great site. Keep doi <Great site. Keep doing. > | Date: 2007-07-03 00:42:38 | |
| Comment44 | ||
| Good work! | ||
| From:Good work! <Good work! > | Date: 2007-07-03 01:50:46 | |
| Comment45 | ||
| Great site. Keep doing. | ||
| From:Great site. Keep doi <Great site. Keep doing. > | Date: 2007-07-03 03:03:56 | |
| Comment46 | ||
| Great site. Keep doing. | ||
| From:Great site. Keep doi <Great site. Keep doing. > | Date: 2007-07-03 16:48:00 | |
| Comment47 | ||
| Very good site. Thank you. | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-07-03 17:48:29 | |
| Comment48 | ||
| Beautifully crafted! | ||
| From:Beautifully crafted! <Beautifully crafted! > | Date: 2007-07-04 05:48:23 | |
| Comment49 | ||
| Beautifully crafted! | ||
| From:Beautifully crafted! <Beautifully crafted! > | Date: 2007-07-04 06:47:23 | |
| Comment50 | ||
| Great site. Keep doing. | ||
| From:Great site. Keep doi <Great site. Keep doing. > | Date: 2007-07-04 07:47:08 | |
| Comment51 | ||
| Very interesting site. Hope it will always be alive! | ||
| From:Very interesting sit <Very interesting site. Hope it> | Date: 2007-07-04 19:42:12 | |
| Comment52 | ||
| Hi great site great work thank you! | ||
| From:Hi great site great <Hi great site great work thank> | Date: 2007-07-04 22:07:39 | |
| Comment53 | ||
| Very good site. Thank you. | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-07-05 10:40:13 | |
| Comment54 | ||
| Beautifully crafted! | ||
| From:Beautifully crafted! <Beautifully crafted! > | Date: 2007-07-05 12:47:39 | |
| Comment55 | ||
| If you have to do it, you might as well do it right | ||
| From:If you have to do it <If you have to do it, you migh> | Date: 2007-07-05 13:55:25 | |
| Comment56 | ||
| Great site. Keep doing. p.s. Thank you google!!! | ||
| From:Great site. Keep doi <Great site. Keep doing. p.s> | Date: 2007-07-05 16:36:00 | |
| Comment57 | ||
| I like this site! Thank you google!!! | ||
| From:I like this site! <I like this site! Thank you> | Date: 2007-07-05 20:43:36 | |
| Comment58 | ||
| Beautifully crafted! p.s. Thank you google!!! | ||
| From:Beautifully crafted! <Beautifully crafted! p.s. T> | Date: 2007-07-05 23:21:28 | |
| Comment59 | ||
| Beautifully crafted! Thank you google!!! | ||
| From:Beautifully crafted! <Beautifully crafted! Thank > | Date: 2007-07-06 00:08:33 | |
| Comment60 | ||
| If you have to do it, you might as well do it right p.s. Thank you google!!! | ||
| From:If you have to do it <If you have to do it, you migh> | Date: 2007-07-06 02:35:24 | |
| Comment61 | ||
| Keep working! Thank you google!!! | ||
| From:Keep working! Tha <Keep working! Thank you goo> | Date: 2007-07-06 03:17:33 | |
| Comment62 | ||
| If you have to do it, you might as well do it right p.s. Thank you google!!! | ||
| From:If you have to do it <If you have to do it, you migh> | Date: 2007-07-06 05:22:28 | |
| Comment63 | ||
| Very interesting site. Hope it will always be alive! Thank you google!!! | ||
| From:Very interesting sit <Very interesting site. Hope it> | Date: 2007-07-06 06:01:52 | |
| Comment64 | ||
| Very good site. Thank you. p.s. Thank you google!!! | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-07-09 11:45:47 | |
| Comment65 | ||
| Hi great work great site! visit my homepage thank you. Thank you google!!! | ||
| From:Hi great work great <Hi great work great site! visi> | Date: 2007-07-09 16:01:27 | |
| Comment66 | ||
| Great site. Keep doing. p.s. Thank you google!!! | ||
| From:Great site. Keep doi <Great site. Keep doing. p.s> | Date: 2007-07-09 18:58:41 | |
| Comment67 | ||
| Hi great work great site! visit my homepage thank you. | ||
| From:Hi great work great <Hi great work great site! visi> | Date: 2007-07-09 23:13:39 | |
| Comment68 | ||
| Hi great work great site! visit my homepage thank you. p.s. Thank you google!!! | ||
| From:Hi great work great <Hi great work great site! visi> | Date: 2007-07-10 00:33:55 | |
| Comment69 | ||
| Very good site. Thank you. Thank you google!!! | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-07-10 01:45:04 | |
| Comment70 | ||
| Keep working! Thank you google!!! | ||
| From:Keep working! Tha <Keep working! Thank you goo> | Date: 2007-07-10 06:32:57 | |
| Comment71 | ||
| Keep working! p.s. Thank you google!!! | ||
| From:Keep working! p.s <Keep working! p.s. Thank yo> | Date: 2007-07-10 10:20:39 | |
| Comment72 | ||
| Hi great work great site! visit my homepage thank you. Thank you google!!! | ||
| From:Hi great work great <Hi great work great site! visi> | Date: 2007-07-10 11:15:38 | |
| Comment73 | ||
| Great site. Keep doing. p.s. Thank you google!!! | ||
| From:Great site. Keep doi <Great site. Keep doing. p.s> | Date: 2007-07-10 15:55:17 | |
| Comment74 | ||
| Hi great work great site! visit my homepage thank you. Thank you google!!! | ||
| From:Hi great work great <Hi great work great site! visi> | Date: 2007-07-10 16:55:26 | |
| Comment75 | ||
| Keep working! p.s. Thank you google!!! | ||
| From:Keep working! p.s <Keep working! p.s. Thank yo> | Date: 2007-07-10 21:08:25 | |
| Comment76 | ||
| Beautifully crafted! Thank you google!!! | ||
| From:Beautifully crafted! <Beautifully crafted! Thank > | Date: 2007-07-10 22:15:13 | |
| Comment77 | ||
| Good work! | ||
| From:Good work! <Good work! > | Date: 2007-07-11 01:39:17 | |
| Comment78 | ||
| Beautifully crafted! p.s. Thank you google!!! | ||
| From:Beautifully crafted! <Beautifully crafted! p.s. T> | Date: 2007-07-11 02:46:48 | |
| Comment79 | ||
| Very good site. Thank you. | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-07-11 06:47:29 | |
| Comment80 | ||
| If you have to do it, you might as well do it right | ||
| From:If you have to do it <If you have to do it, you migh> | Date: 2007-07-11 11:31:04 | |
| Comment81 | ||
| Good work! p.s. Thank you google!!! | ||
| From:Good work! p.s. T <Good work! p.s. Thank you g> | Date: 2007-07-11 12:49:35 | |
| Comment82 | ||
| Very good site. Thank you. Thank you google!!! | ||
| From:Very good site. Than <Very good site. Thank you. > | Date: 2007-07-11 13:57:03 | |
| Comment83 | ||
| คือผมต้องการให้ไฟล์ชื่อ file2 ทำงานหลังจากทำงานใน file1 เสร็จแล้วผมควรจะทำยังงัยดีคับ | ||
| From: <> | Date: 2007-09-03 11:56:55 | |
| Comment84 | ||
| ลองใช้ vi file1 file2 ได้ไหมค่ะ เมื่อเราออกจากfile1 ก้อจะทำคำสั่งใน file2 ต่อ ไม่ทราบว่าทำได้รึป่าวนะค่ะ | ||
| From: <> | Date: 2007-09-03 16:20:53 | |
| Comment85 | ||
| ไม่เข้าใจคำถามนะครับ ถ้า file1 และ file2 เป็ฯโปรแกรม เช่น ls กับ pwd ก็ใช้ ls; pwd; | ||
| From:เกริก <> | Date: 2007-09-03 21:12:36 | |
| Comment86 | ||
| คือ file1 และ file 2 เป็นไฟล์คับ ขอบคุณ ทุกท่านที่ช่วยตอบนะคับผม | ||
| From: <> | Date: 2007-09-03 22:44:02 | |
| Comment87 | ||
| ขอบคุณมากค่ะ | ||
| From:mm <> | Date: 2007-09-17 08:51:26 | |
| Comment88 | ||
| vi file1;vi file2 | ||
| From: <> | Date: 2007-09-20 15:47:49 | |
| Comment89 | ||
| ขอบคุณครับ กำลังเรียนอยู่เลย | ||
| From:Parinya <> | Date: 2007-09-25 19:44:51 | |
| Comment90 | ||
| Hello! Good Site! Thanks you! wqysbuxlkpus | ||
| From:jsyyqdjtxa <clrmc< at >vcvpcwn.com> | Date: 2007-10-10 12:38:00 | |
| Comment91 | ||
| ขอบคุณมากครับ | ||
| From:devil <> | Date: 2007-10-27 15:15:48 | |
| Comment92 | ||
| รบกวนถามครับ *--* ถ้าเราต้องการ Protect Process จากการ Kill หรือ ต้องมีการยืนยันก่อนการ kill จะทำอย่างไรได้บ้างครับ | ||
| From:พีพี <> | Date: 2007-11-01 07:30:08 | |
| Comment93 | ||
| ดีครับ ๆ น่าส่งเสริม | ||
| From:Ton <> | Date: 2007-11-13 11:11:09 | |
| Comment94 | ||
| ขอบคุณมากเลยค่า | ||
| From:หนูน้อย <> | Date: 2008-05-19 14:28:08 | |
| Comment95 | ||
| แจ่ม ๆ | ||
| From: <> | Date: 2008-07-14 15:05:56 | |
| Comment96 | ||
| แหล่มมาก ๆ | ||
| From:ก๊อป <opengltorun< at >hotmail.com> | Date: 2008-07-14 15:06:38 | |
| Comment97 | ||
| ขอบคุณครับ อาจารย์ | ||
| From:hello <> | Date: 2008-09-05 17:10:17 | |
| Comment98 | ||
| Nice day, | ||
| From:WSiNOdCQlBZ <fzzsctiu< at >qqncfkou.com> | Date: 2008-12-04 05:08:12 | |
| Comment99 | ||
| Thanks ค่ะ ^^ | ||
| From:P <> | Date: 2008-12-05 18:23:17 | |
| Comment100 | ||
| Thank you ka AJ Nice! Website!!!! | ||
| From:Rainnie <Raina_j< at >hotmail.com> | Date: 2008-12-29 12:23:05 | |
| Comment101 | ||
| ผมอ่านตัวอย่าง เอ๊ะ ชื่อคุ้นๆ โอ้... อาจารย์เกริก (อีกแล้ว) ขอบคุณครับอาจารย์ ผมกำลังทำงานเกี่ยวกับการเขียน Shell Script พอดี ^ ^ | ||
| From:T <> | Date: 2009-02-20 09:12:31 | |
| Comment102 | ||
| เยี่ยมเลยค่ะ หามาทั้งคืน พึ่งเจอค่ะ ขอบตุงตะ | ||
| From:ead <nun.kub< at >hotmail.com> | Date: 2009-06-23 13:12:34 | |
| Comment103 | ||
| ขอบคุณมากมายคะ | ||
| From:fluke <f_luk_e< at >hotmail.com> | Date: 2009-07-17 15:17:37 | |