国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

深入淺出Shell編程 Shell變量介紹

2019-10-26 18:32:06
字體:
來源:轉載
供稿:網友

•深入淺出Shell編程: Shell 變量
◦1 系統變量
◦2 Shell用戶變量
■2.1 基礎
■2.2 使用技巧
■2.3 shell 中的數組
◦3 shell 環境變量
先不要管Shell的版本,來看看Shell 變量,在Shell中有三種變量:系統變量,環境變量,用戶變量。其中用戶變量在編程過程中使用最多,系統變量在對參數判斷和命令返回值判斷會使用,環境變量主要是在程序運行的時候需要設置。

1 系統變量

Shell常用的系統變量并不多,但卻十分有用,特別是在做一些參數檢測的時候。下面是Shell常用的系統變量
表示方法  描述 
$n  $1 表示第一個參數,$2 表示第二個參數 ... 
$#  命令行參數的個數 
$0  當前程序的名稱 
$?  前一個命令或函數的返回碼 
$*  以"參數1 參數2 ... " 形式保存所有參數 
$@  以"參數1" "參數2" ... 形式保存所有參數 
$$  本程序的(進程ID號)PID 
$!  上一個命令的PID 
其中使用得比較多得是 $n $# $0 $? ,看看下面的例子:
代碼如下:
#!/bin/sh
#This file is used to explain the shell system variable.
echo "the number of parameter is $# ";
echo "the return code of last command is $?";
echo "the script name is $0 ";
echo "the parameters are $* ";
echo "/$1 = $1 ; /$2 = $2 ";

下面是運行結果:
-bash-2.05b$ ./chapter2.1.sh winter stlchina
the number of parameter is 2
the return
 code of last command is 0
the script name is ./chapter2.1.sh
the parameters are winter stlchina
$1 = winter ; $2 = stlchina
這個例子太簡單了,一點也不實用,下面來個實用的,如果你看不懂,沒有關系,后面的內容會有詳細解釋。
代碼如下:
#!/bin/sh
if [ $# -ne 2 ] ; then
echo "Usage: $0 string file";
exit 1;
fi
grep $1 $2 ;
if [ $? -ne 0 ] ; then
echo "Not Found /"$1/" in $2";
exit 1;
fi
echo "Found /"$1/" in $2";

上面的例子中使用了$0 $1 $2 $# $? 等變量,下面是程序的解釋:
1.判斷運行參數個數,如果不等于2,顯示使用"用法幫助", 其中 $0 表示就是腳本自己。
2.用grep 在$2 文件中查找$1 字符串。
3.判斷前一個命令運行后的返回值(一般成功都會返回0, 失敗都會返回非0)。
4.如果沒有成功顯示沒找到相關信息,否則顯示找到了。
5.其中/"表示轉義,在"" 里面還需要顯示"號,則需要加上轉義符/" .
下面運行的例子:
./chapter2.2.sh usage chapter2.2.sh
Not Found "usage" in
 chapter2.2.sh
-bash-2.05b$ ./chapter2.2.sh Usage chapter2.2.sh     
echo
 "Usage: $0 string file";
Found "Usage" in
 chapter2.2.sh

2 Shell用戶變量

2.1 基礎
不管系統變量有多少,對于需求來說,總是不夠的。用戶變量是最常用到的變量,使用也十分簡單。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东明县| 黄陵县| 凤山市| 花莲县| 乐昌市| 沂南县| 木里| 鹤山市| 元阳县| 诸暨市| 顺昌县| 桂林市| 白城市| 嘉善县| 唐河县| 鄄城县| 齐齐哈尔市| 塔城市| 来宾市| 澄江县| 堆龙德庆县| 蕲春县| 清远市| 亳州市| 航空| 五莲县| 外汇| 宁乡县| 青河县| 古交市| 南通市| 定结县| 东乡| 伊吾县| 若羌县| 新邵县| 前郭尔| 淮北市| 青神县| 西丰县| 理塘县|