GB | BIG5
|
| 首頁 > 編程技術 > Shell > 正文 |
 |
| Linux程式設計-11.Shell Script(bash)--(11)參數與變數 |
| http://www.openchess.org/noitatsko/programming/ (2001-05-25 18:08:00) |
在繼續下去介紹function之前,我們必須停下來介紹"參數與變數"。
--------------------------------------------------------------------------------
參數(Parameters)是用來儲存"值"的資料型態,有點像是一般語言中的變數。它可以是個名稱(name)、數字(number)、或者是以下所列出來一些特殊符號(Special Parameters)。
在shell中,變數是由name形式的參數所構成的。
--------------------------------------------------------------------------------
在前面的許多例中,我們事實上已經看到許多參數的運用。要設定一個Parameter實際很簡單:
name=value
例如說:
MYHOST="foxman"
而要使用它時,則是加個"$"符號。
echo $MYHOST
--------------------------------------------------------------------------------
位置參數(Positional Parameters)
--------------------------------------------------------------------------------
所謂的位置參數便是0,1,2,3,4,5,6,7,8,9...。使用時,用$0,$1,$2...。
位置參數是當script被載入時,後面所附加的參數。$0是本身,$1則為第一個參數,$2為第二個,依此類推。而當Positional Parameters被function所使用時,它們會被暫時取代(下一節會介紹function)。
例如以下這個script:
#!/bin/sh
# Filename : position
echo $0
echo $1
執行時:
[foxman@foxman bash]# ./position abc
./position
abc
當位置參數超過兩位數時,有特別的方法來展開,稱為Expansion。
--------------------------------------------------------------------------------
特殊參數(Speical Parameters)
這些符號,非常不人性,對新手來說很困擾。但上手後,會覺得方便無比,有些如果您看不懂的話,就--算了,不用浪費太多時間在上面。
--------------------------------------------------------------------------------
* 星號
將Positional Parameters合成一個參數,其間隔為IFS內定參數的第一個字元(見內建變數一節)。
例:
#!/bin/sh
# starsig
echo $*
執行:
[foxman@foxman bash]# starsig a b c d e f g
a b c d e f g
--------------------------------------------------------------------------------
@ at符號
與*星號類同。不同之處在於不參照IFS。
例:
#!/bin/sh
# atsig
echo $@
執行:
[foxman@foxman bash]# atsig a b c d e f g
a b c d e f g
--------------------------------------------------------------------------------
# 井字號
展開Positional parameters的數量。
例:
#!/bin/sh
# poundsig
echo $#
執行
[foxman@foxman bash]# poundsig a b c d e f g
7
--------------------------------------------------------------------------------
? 問號
最近執行的foreground pipeline的狀態。
--------------------------------------------------------------------------------
- 減號
最近執行的foreground pipeline的選項參數。
--------------------------------------------------------------------------------
$ 錢錢錢
本身的Process ID。
[foxman@foxman bash]# ps ax | grep bash
1635 p1 S 0:00 /bin/bash
[foxman@foxman bash]# echo $$
1635
--------------------------------------------------------------------------------
! 驚號
最近執行背景命令的Process ID。
--------------------------------------------------------------------------------
0 零
在Positional Parameters一部份已經說明過了,是執行的shell script本身。但如果是用"bash -c",則$0被設為第一個參數。
[foxman@foxman bash]# echo $0
/bin/bash
--------------------------------------------------------------------------------
_ 底線符號
顯示出最後一個執行的命令。
[foxman@foxman bash]# echo $_
bash
--------------------------------------------------------------------------------
內建變數(Shell Variables)
Bash有許多內建變數,像PATH、HOME、ENV......等等。這些內建變數將在另一節中,專門一一說明。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
Linux程式設計-31.工作群資訊管理(grp) (2001-05-27 22:08:00) Linux程式設計-30.使用者資訊管理(pwd) (2001-05-27 21:04:00) Linux程式設計-29.時間處理 (2001-05-27 20:10:01) Linux程式設計-28.GNU Make (2001-05-27 19:00:00) Linux程式設計-27.GNU Debugger (2001-05-27 18:08:01) Linux程式設計-26.PIPE (2001-05-27 17:04:00) Linux程式設計-25.Message Queues (2001-05-27 16:10:00) Linux程式設計-24.Semaphores (2001-05-27 15:00:00) Linux程式設計-23.共享記憶體(Shared Memory) (2001-05-27 14:08:00) Linux程式設計-20.getopt (2001-05-27 13:04:00)
|
===更多相關=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |