13Shell腳本—編寫簡單腳本
阿新 • • 發佈:2018-06-23
echo 普通 權限 inter man ech 事先 pre 一次
1. 概述
Shell腳本命令的工作方式有兩種:交互式和批處理。
交互式(Interrctive): 用戶每輸入一條命令就立即執行。
批處理(Batch): 由用戶事先編寫好一個完整的 Shell 腳本, Shell 會一次性執行腳本中諸多的命令。
Shell腳本文件的名稱可以任意。但為了避免被誤以為是普通文件,建議將 .sh 後綴加上,以表示是一個腳本文件。
2. 第一個簡單的shell腳本
[root@rockman 0614]# vi example.sh #!/bin/bash #For example by rock pwd ls -l #第一種執行方法 bash 腳本文件名及其參數 或者 sh 腳本文件名及其參數 [root@rockman 0614]# bash example.sh /home/hk/0614 total 20 -rw-r--r--. 1 root root 65 Jun 14 17:32 aaa.txt -rw-r--r--. 1 root root 0 Jun 14 16:17 abc.txt -rw-r--r--. 1 root root 0 Jun 14 16:23 bbb.txt -rw-r--r--. 1 root root 0 Jun 14 16:27 ccc.txt -rw-r--r--. 1 root root 43 Jun 14 17:51 example.sh -rw-rw-r--. 1 hk hk 4731 Jun 14 09:10 openman.txt -rw-rw-r--. 1 hk hk 22 Jun 14 09:11 practice.txt #第二種執行方法 先讓Shell文件權限加上可執行,然後直接運行 [root@rockman 0614]# chmod u+x example.sh [root@rockman 0614]# ./example.sh /home/hk/0614 total 20 -rw-r--r--. 1 root root 65 Jun 14 17:32 aaa.txt -rw-r--r--. 1 root root 0 Jun 14 16:17 abc.txt -rw-r--r--. 1 root root 0 Jun 14 16:23 bbb.txt -rw-r--r--. 1 root root 0 Jun 14 16:27 ccc.txt -rwxr--r--. 1 root root 43 Jun 14 17:51 example.sh -rw-rw-r--. 1 hk hk 4731 Jun 14 09:10 openman.txt -rw-rw-r--. 1 hk hk 22 Jun 14 09:11 practice.txt #第三種方法 source 腳本文件名及其參數 或者 . 腳本文件名及其參數 [root@rockman 0614]# source example.sh /home/hk/0614 total 20 -rw-r--r--. 1 root root 65 Jun 14 17:32 aaa.txt -rw-r--r--. 1 root root 0 Jun 14 16:17 abc.txt -rw-r--r--. 1 root root 0 Jun 14 16:23 bbb.txt -rw-r--r--. 1 root root 0 Jun 14 16:27 ccc.txt -rw-r--r--. 1 root root 43 Jun 14 17:51 example.sh -rw-rw-r--. 1 hk hk 4731 Jun 14 09:10 openman.txt -rw-rw-r--. 1 hk hk 22 Jun 14 09:11 practice.txt
3. 可以接受用戶參數的腳本文件
Shell內置可用於接受參數的變量,變量之間可以使用空格間隔。
$0 當前shell腳本程序的名稱
$# 總共有幾個參數
$* 所有位置的參數值
$? 顯示上一次命令執行的返回值
$1 第一個位置的參數值
$N 第N個位置的參數值
[root@rockman 0615]# cat example.sh #!/bin/bash echo "當前腳本名稱為$0" echo "總共有$#個參數,分別是$*。" echo "第1個參數為$1, 第二個參數為$2。" [root@rockman 0615]# sh example.sh one two three four five six 當前腳本名稱為example.sh 總共有6個參數,分別是one two three four five six。 第1個參數為one, 第二個參數為two。
13Shell腳本—編寫簡單腳本