It is very important for Linux system administrators and O & M personnel to learn Shell scripts. I recently read the Shell script. In order to systematically learn the Shell script, I read the third edition of "laruence's Linux basic learning for Private food, chapter 1 describes how to learn Shell scripts. Good habits of writing shell scripts 1. script functions; 2. script version information; 3. Author and contact information; 4. script version declaration method; 5. script History (History) 6. Execute special commands in the script using the "absolute path" method; 7. Environment Variable pre-declaration and settings required for script execution. Sh01.sh [plain] <span style = "font-size: 14px;"> #! /Bin/bash # program: # This program show "Hello World! "In your screen # History: #2013/04/21 :31 ccf First release PATH =/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin: /usr/local/sbin :~ /Bin export PATH echo-e "Hello World! \ A \ n "exit 0 </span> sh02.sh [plain] <span style =" font-size: 14px; "> #! /Bin/bash # Program # User inputs his first name and last name. program shows his full name. # History #2013/04/21, by ccf, First release PATH =/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin: /usr/local/sbin :~ /Bin export PATH read-p "Please input your first name:" firstname # prompt the user to enter read-p "Please input your last name: "lastname # Prompt user input echo-e" \ nYour full name is: $ firstname $ lastname "# result output by screen </span> sh03.sh [plain] <span style =" font-size: 14px; "> #! /Bin/bash # Program creates three files, which named by user's input # and date command # History: #2013/04/21 Sunday ccf First release PATH =/bin:/sbin: /usr/bin:/usr/sbin:/usr/local/bin:/usr/loacl/sbin :~ /Bin export PATH #1. ask the user to input the file name and obtain the fileuser variable echo-e "I will use 'touch' command to create 3 files. "# purely display information read-p" Please input your filename: "fileuser # Prompt user input #2. to prevent users from pressing Enter at will, use the variable function to analyze whether the file name has been set to filename =$ {fileuser:-"filename"} # Start to determine whether there is a configuration file name #3. start to use the date command to get the required file name date1 =$ (date -- date = '2 days ago '+ % Y % m % d) # date2 = $ (date -- date = '1 days ago '+ % Y % m % d) # date date3 = $ (date + % Y % m % D) # Today's date file1 =1 {filename }$ {date1} # The following three lines are configured in the file name file2 =$ {filename }$ {date2} file3 =3 {filename }$ {date3} #4. create a file name: touch "$ file1" touch "$ file2" touch "$ file3" </span> sh04.sh [plain] <span style = "font-size: 14px;"> #! /Bin/bash # Program: # User inputs 2 integer numbers; program will cross these two numbers. # History: #2013/04/21 ccf19881030 First release PATH =/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: ~ /Bin export PATH echo-e "You shoshould input 2 numbers, I will cross them! \ N "read-p" first number: "firstnum read-p" second number: "secondnum total = $ ($ firstnum * $ secondnum )) echo-e "\ nThe result of $ firstnum * $ secondnum is ==>$ total" </span> sh05.sh [plain] <span style = "font-size: 14px; "> #! /Bin/bash # program: # User input a filename, program will check the follwing: #1.) exist? 2.) file/directory? 3 .) file permissions # History: #2013/05/14 ccf First Release PATH =/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin: /usr/local/sbin :~ /Bin export PATH #1. Ask the user to input the file name and determine whether the user has an input string echo-e "Please input a filename, I will check the filename's type and permission. \ n "# purely display information read-p" Input a filename: "filename # Prompt user input test-z $ filename & echo" You MUST Input a filename. "& exit 0 #2. Determine whether the file exists. If not, display the information and end the Script test! -E $ filename & echo "The filename '$ filename 'do NOT exist" & exit 0 #3. Start to judge The file type and attribute test-f $ filename & filetype = "regular file" test-d $ filename & filetype = "directory" test-r $ filename & perm = "readable" test-w $ filename & perm = "$ perm writeable "test-x $ filename & perm =" $ perm executable "#4. Start to output information! Echo "The filename: $ filename is a $ filetype" echo "And the permission are: $ perm" </span> sh06.sh [plain] #! /Bin/bash # Program: # This program shows the user's choice # History: #2013/05/14 ccf First release PATH =/bin:/sbin:/usr/bin: /usr/sbin:/usr/local/bin:/usr/local/sbin :~ /Bin export PATH read-p "Please input (Y/N ): "yn [" $ yn "=" Y "-o" $ yn "=" y "] & echo" OK, continue "& exit 0 [" $ yn "=" N "-o" $ yn "=" n "] & echo" Oh, interrupt! "& Exit 0 echo" I don't know what your choice is "& exit 0 can run shell scripts through sh sh01.sh or chmod a + x sh01.sh;./sh01.sh.