在作業系統中,執行程式時可以由系統傳入引數,就是在執行的時候,附帶上引數。比如:
1
ping
www.kryptosx.info
後面跟著的**就是ping的引數。
linux和windows的shell都遵循這個引數傳入方式。這裡列一下各種語言的執行入口傳參方法。主要分為兩類,一種是有main函式的語言,一種是沒有main函式的。
在執行命令的時候,linux系統會先對命令列進行分解。通常是以空格分解,如果有雙引號,雙引號內的也是認為是乙個引數,無論裡面有無空格。
c類語言包括c和c++語言,他們的傳參方式一樣。都是在main函式中。c/c++語言中的main函式可以攜帶引數,只是我們平常不用。
1
int
main(
int
argc,
char
** ar**)
2
int
main(
int
argc,
char
* ar**)
argc是指命令列輸入引數的個數(以空白符分隔),程式名也是包含在內的。
ar**是乙個指向字串陣列的指標。
01
#include
02
int
main(
int
argc,
char
** ar**)
03
1
play.exe a b c d
"hello sir"
2
argc: 6
3
ar**[0] is play.exe
4
ar**[1] is a
5
ar**[2] is b
6
ar**[3] is c
7
ar**[4] is d
8
ar**[5] is hello sir
可以看出,傳給ar**的字串中,argc是整個輸入的命令被分解的段數(注意雙引號)。
shell指令碼是沒有main函式的,它是個解釋性語言。但是我們也可以在執行時對其傳參。相對c語言而言,更為簡單。
shell是使用系統定義的位置變數。引用指令碼引數時,可以使用$1到$9這9個變數。還有乙個特殊點的變數是$*,它輸出所有引數(不包括程式名)。
1
#!/bin/bash
2
echo
"\$* is "
$*
3
echo
"\$0 is "
$0
4
echo
"\$1 is "
$1
5
echo
"\$2 is "
$2
6
echo
"\$3 is "
$3
7
echo
"\$4 is "
$4
1
bash
hello.sh 1 2 3 4
2
$* is 1 2 3 4
3
$0 is hello.sh
4
$1 is 1
5
$2 is 2
6
$3 is 3
7
$4 is 4
python是乙個介於shell和c/c++之間的語言,它的執行入口傳參有二者的特點。和shell一樣python也是沒有main函式的,但是python和c/c++類似有乙個ar**變數。python要傳參還需要乙個sys模組。
1
#coding=utf-8
2
import
sys
3
print
"sys.ar**[0] is "
, sys.ar**[
0
]
4
for
i
in
range
(
1
,
len
(sys.ar**)):
5
print
"sys.ar**["
+
str
(i)
+
"] is "
, sys.ar**[i]
1
python hello.py 2324 3 2 3
"sads sdaf"
2
sys.ar**[0] is hello.py
3
sys.ar**[1] is 2324
4
sys.ar**[2] is 3
5
sys.ar**[3] is 2
6
sys.ar**[4] is 3
7
sys.ar**[5] is sads sdaf
a鏈結傳參的方法
獲取分案編號 var hrefval window.location.href.split 1 得到id 樓主 後乙個 hrefval 3 var therequest new object var strs hrefval.split 那麼我們在新頁面接收引數,並且將引數轉為可用的json格式時,...
頁面間傳參的方法
session 1.session用來儲存每乙個使用者的專有資訊 2.session的生存期是使用者持續請求時間加上一段時間 一般是20分鐘左右 3.session資訊是儲存在web伺服器記憶體中的,儲存資料量可大可小 4.session超時或者被關閉將自動釋放資料資訊 5.由於使用者停止使用應用程...
Ext中的傳參方法
我參與的這個專案中涉及到了傳參的問題,一開始不知道怎樣傳參,後來經一看,原來是這樣的 這是傳參的頁面 其中紅色的 就是傳參的地方 var onaddclicked function size color autoscroll true,modal true,closeaction close win...