Ⅰ 如何給shell腳本傳參數
from:Linux命令行與shell腳本編程大全.第3版
向shell腳本傳遞數據的最基本方法是使用命令行參數。命令行參數允許在運行腳本時向命令行添加數據。
$ ./addem 10 30
本例向腳本addem傳遞了兩個命令行參數( 10和30)。腳本會通過特殊的變數來處理命令行參數。下面是在shell腳本中使用單個命令行參數的簡單例子。
$cattest1.sh
#!/bin/bash
#usingonecommandlineparameter
#
factorial=1
for((number=1;number<=$1;number++))
do
factorial=$[$factorial*$number]
done
echoThefactorialof$1is$factorial
$
$./test1.sh5
Thefactorialof5is120
$
Ⅱ linux 調用腳本怎麼傳腳本參數
Linux shell腳本開始執行時,系統會初始化一些腳本的環境變數和參數變數,這些變數是可以直接使用的,下面是一些參數變數:
$1,$2,$3......:代表腳本程序的參數,腳本有幾個參數數字就到幾;
那$0代表什麼呢?當然是腳本的名字了
還有和腳本參數有關的一個腳本環境變數:$#
它代表傳遞給腳本的參數個數。
知道了這些,你就可以在你編寫的腳本內編寫處理腳本參數的代碼,一旦你的腳本有了對參數的處理,你就可以這樣調用有參數的腳本:
./腳本名 參數1 參數2......
參數和腳本名、參數和參數之間用空格分開,和使用shell命令的格式是一樣的。
Ⅲ 如何向expect腳本裡面傳遞參數
expect是一個用來實現自動交互功能的工具,使用expect-send來實現交互過程。腳本的執行方法與bash shell不一樣,如:expect example.sh
向一個腳本傳遞參數,bash shell是使用$1,$2...來接收參數的,而epxect則將腳本的執行參數保存在數組$argv中,在腳本中一般將其賦值給變數:set 變數名 [lindex $argv 參數]
實例:
寫一個自動登陸遠程主機的腳本,通過參數傳遞主機名,帳戶,密碼
1)編寫腳本
#!/usr/bin/expect
set ip [lindex $argv 0]
set username [lindex $argv 1]
set passwd [lindex $argv 2]
spawn ssh -l $username $ip
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "$passwd\r" }
}
#expect eof
interact
注意:若登陸後便退出遠程終端,則寫expect eof即可。
2)執行腳本
expect autologin.sh 172.24.6.29 root redhat
Ⅳ 怎樣給lua腳本傳遞參數和腳本怎樣接受這些參數
兩種方式:
1、腳本內定義全局函數(非local的), 然後在別的腳本require這個腳本後直接通過名稱和參數進行調用(類似c函數的調用)
2、腳本內定義一個message_handler的入口函數(類似main函數),這個入口函數接受一個msg和一系列的params。然後別的腳本或函數通過postmessage或者sendmessage函數。向指定腳本傳遞參數msg和params,進而進行處理