在bash中執行的命令,有些引數經常會帶個萬用字元的,但是你知道這個引數是何時展開的嗎?
先來看下簡單的bash小**:
[zcm@debug #88]$cat del.sh
#!/bin/bash
if [ $# -lt 2 ]; then
echo "usage: $0 "
exit 1
fiecho $1
echo $2
echo $3
再來看執行過程:
[zcm@debug #89]$./del.sh *.txt
a.txt
b.txt
c.txt
[zcm@debug #90]$./del.sh "*.txt"
usage: ./del.sh [zcm@debug #91]$ls aad/
a.txt b.txt c.txt
[zcm@debug #92]$./del.sh aad/*.txt
aad/a.txt
aad/b.txt
aad/c.txt
[zcm@debug #93]$./del.sh "aad/*.txt"
usage: ./del.sh [zcm@debug #94]$
看出區別了嗎:輸入引數中 *.txt 有乙個帶了雙引號,乙個沒帶,執行結果就不一樣了。
結論:帶雙引號的*.txt在命令列中是當作乙個整體傳入的,但是不帶雙引號的*.txt在傳給bash直譯器之前就已經被替換為它的結果(即:a.txt b.txt c.txt)。
所以,帶雙引號的*.txt在執行時出錯,提示引數個數不足,而另乙個卻因為輸入引數個數充足,而沒有提示出錯!
命令列下執行帶引數php
命令列下執行帶引數 php命令列下執行php 不走apache 等通訊流程 沒有http 協議,所有 get,post 傳引數不起作用 按普通應用程式傳引數的方法進行。1 test.php 測試檔案 檢視複製列印 print r ar echo n echo argc echo n 2,命令列下呼叫...
python 命令列帶引數執行方式
m 將標準庫中的模組作為指令碼去執行 在python2.x中啟動乙個cgi web 伺服器 python m cgihttpserver port 啟動乙個web服務,使用瀏覽器檢視pydoc文件 python m pydoc p8080區域網內檔案傳輸,在python2.x中,可以啟動乙個伺服器,...
命令列引數
c 程式設計師參考 main方法可以使用引數,在這種情況下它採用下列形式之一 static int main string args static void main string args main方法的引數是表示命令行引數的string陣列。通常通過測試length屬性來檢查引數是否存在,例如 ...