免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1068 | 回复: 0
打印 上一主题 下一主题

几个Linux命令:type、read、declare [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-18 14:45 |只看该作者 |倒序浏览
1、type命令:

[root@linux ~]# type [-tpa] name
參數:
    :不加任何參數時,則 type 會顯示出那個 name 是外部指令還是 bash 內建的指令!
-t  :當加入 -t 參數時,type 會將 name 以底下這些字眼顯示出他的意義:
      file    :表示為外部指令;
      alias   :表示該指令為命令別名所設定的名稱;
      builtin :表示該指令為 bash 內建的指令功能;
-p  :如果後面接的 name 為指令時,會顯示完整檔名(外部指令)或顯示為內建指令;
-a  :會將由 PATH 變數定義的路徑中,將所有含有 name 的指令都列出來,包含 alias
範例:
範例一:查詢一下 ls 這個指令是否為 bash 內建?
[root@linux ~]# type ls
ls is aliased to `ls --color=tty'
# 沒有加上任何參數,僅列出 ls 這個指令的最主要使用情況
[root@linux ~]# type -t ls
alias
# -t 參數則僅列出 ls 這個指令的最主要使用情況說明
[root@linux ~]# type -a ls
ls is aliased to `ls --color=tty'
ls is /bin/ls
# 利用所有方法找出來的 ls 相關資訊都會被列出來!

範例二:那麼 cd 呢?
[root@linux ~]# type cd
cd is a shell builtin


2、read命令:

要讀取來自鍵盤輸入的變數,就是用 read 這個指令了。這個指令最常被用在 shell script 的撰寫當中, 以跟使用者進行對談。
[root@linux ~]# read [-pt] variable
參數:
-p  :後面可以接提示字元!
-t  :後面可以接等待的『秒數!』這個比較有趣~不會一直等待使用者啦!
範例:

範例一:讓使用者由鍵盤輸入一內容,將該內容變成 atest 變數
[root@linux ~]# read atest
This is a test
[root@linux ~]# echo $atest
This is a test

範例二:提示使用者 30 秒內輸入自己的大名,將該輸入字串做成 named 變數
[root@linux ~]# read -p "Please keyin your name: " -t 30 named
Please keyin your name: VBird Tsai
[root@linux ~]# echo $named
VBird Tsai

read 之後不加任何參數,直接加上變數名稱,那麼底下就會主動出現一個空白行,等待您輸入。 如果加上 -t 後面接秒數之後,例如上面的範例當中,那麼 30 秒之內沒有任何動作時, 該指令就會自動略過了~如果是加上 -p ,嘿嘿!後面就會有比較多可以用的提示字元給我們參考! 在指令的下達裡面,比較美觀啦! ^_^
3、declare / typeset 命令:
declare 或 typeset 是一樣的功能,就是在宣告變數的屬性。如果使用 declare 後面並沒有接任何參數, 那麼 bash 就會主動的將所有的變數名稱與內容通通叫出來,就好像使用 set 一樣啦! 那麼 declare 還有什麼語法呢?看看先:
[root@linux ~]# declare [-aixr] variable
參數:
-a  :將後面的 variable 定義成為陣列 (array)
-i  :將後面接的 variable 定義成為整數數字 (integer)
-x  :用法與 export 一樣,就是將後面的 variable 變成環境變數;
-r  :將一個 variable 的變數設定成為 readonly ,該變數不可被更改內容,也不能 unset
範例:
範例一:讓變數 sum 進行 100+300+50 的加總結果
[root@linux ~]# sum=100+300+50
[root@linux ~]# echo $sum
100+300+50  
declare 也是個很有用的功能~尤其是當我們需要使用到底下的陣列功能時, 他也可以幫我們宣告陣列的屬性喔!不過,老話一句,陣列也是在 shell script 比較常用的啦!
陣列屬性 array 說明
某些時候,我們必須使用陣列來宣告一些變數,這有什麼好處啊?在一般人的使用上, 果然是看不出來有什麼好處的!不過,如果您曾經寫過程式的話,那才會比較瞭解陣列的意義~ 陣列對寫數值程式的設計師來說,可是不能錯過學習的重點之一哩!好!不囉唆~ 那麼要如何設定陣列的變數與內容呢?在 bash 裡頭,陣列的設定方式是:
var[index]=content
意思是說,我有一個陣列名稱為 var ,而這個陣列的內容為 var[1]=小明, var[2]=大明, var[3]=好明 .... 等等,那個 index 就是一些數字啦,重點是用中刮號 ([ ]) 來設定的。 目前我們 bash 提供的是一維陣列。老實說,如果您不必寫一些複雜的程式, 那麼這個陣列的地方,可以先略過,等到有需要再來學習即可!因為要製作出陣列, 通常與迴圈或者其他判斷式交互使用才有比較高的意義存在!
範例:設定上面提到的 var[1] ~ var[3] 的變數。
[root@linux ~]# var[1]="small min"
[root@linux ~]# var[2]="big min"
[root@linux ~]# var[3]="nice min"
[root@linux ~]# echo "${var[1]}, ${var[2]}, ${var[3]}"



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56861/showart_479913.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP