記錄一些shell程式設計的問題。
有個教程很好------
1.獲取返回資訊。
如果是返回結果:
cmdif [ "$?" == "" ]
then
echo "乙個字元"
else
echo "另乙個字元"
fi如果是輸出:
result=`cmd`
if [ "$result" == "" ]
then
echo "乙個字元"
else
echo "另乙個字元"fi
2.特殊變數說明。
變數說明: $$
shell本身的pid(processid)
$!shell最後執行的後台process的pid
$?最後執行的命令的結束**(返回值)
$-使用set命令設定的flag一覽
$*所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。
$@所有引數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。
$#新增到shell的引數個數
$0shell本身的檔名
$1~$n
新增到shell的各引數值。$1是第1引數、$2是第2引數…。
我們先寫乙個簡單的指令碼,執行以後再解釋各個變數的意義
# touch variable
# vi variable
指令碼內容如下:
#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
儲存退出
賦予指令碼執行許可權
# chmod +x variable
執行指令碼
# ./variable aa bb
number:2
scname:./variable
first: aa
second:bb
argume:aa bb
通過顯示結果可以看到:
$# 是傳給指令碼的引數個數
$0 是指令碼本身的名字
$1是傳遞給該shell指令碼的第乙個引數
$2是傳遞給該shell指令碼的第二個引數
$@ 是傳給指令碼的所有引數的列表
3.檔案包含
像其他語言一樣,shell 也可以包含外部指令碼,將外部指令碼的內容合併到當前指令碼。
shell 中包含指令碼可以使用:
. filename或
source filename
兩種方式的效果相同,簡單起見,一般使用點號(.),但是注意點號(.)和檔名中間有一空格。
例如,建立兩個指令碼,乙個是被呼叫指令碼 subscript.sh,內容如下:
url=""
乙個是主檔案 main.sh,內容如下:
複製純文字新視窗
#!/bin/bash../subscript
.shecho $url
執行指令碼:
$chomd +x main.sh注意:被包含指令碼不需要有執行許可權。./main.sh
$
4.字串
字串是shell程式設計中最常用最有用的資料型別(除了數字和字串,也沒啥其它型別好用了),字串可以用單引號,也可以用雙引號,也可以不用引號。單雙引號的區別跟php類似。
str='this is a string'
單引號字串的限制:
your_name='qinjx'
str=
"hello, i know your are
\"$your_name
\"! \n"
雙引號的優點:
your_name="qinjx"
greeting
="hello, "
$your_name
" !"
greeting_1
="hello, $ !"
echo $greeting
$greeting_1
string="abcd"
echo $
#輸出 4
string="alibaba is a great company"
echo $
#輸出liba
string="alibaba is a great company"
echo `expr index "$string" is`
shell程式設計記錄01
本篇文章將展現乙個最簡單的makefile檔案的編寫。乙個工程中的原始檔不計其數,其按型別 功能 模組分別放在若干個目錄中,makefile定義了一系列的規則來指定哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更複雜的功能操作,因為 makefile就像乙個shell指令碼...
shell使用記錄
檢查 設定系統的服務 chkconfig top。inux下常用的效能分析工具,能夠實時顯示系統中各個程序的資源占用狀況,類似於windows的任務管理器。詳解使用shell命令控制任務 jobs 執行 jobs 列出屬於當前使用者的程序 bg n 將程序搬到後台執行 background fg n...
shell 學習記錄
1 以兩個破折號 來表示選項結尾的用法,源自system v。自此之後命令列上看起來像選項的任何專案,都將 一視同仁的當成引數處置。上面這個句話是什麼鬼意思?2 shell是別的三種命令 1 內建命令 比如cd echo test 2 shell函式 3 外部命令 shell變數 1 變數名字 字元...