『壹』 如何給shell腳本傳參數
方法/步驟
執行「nano test.sh」創建一個新的shell腳本。
腳本test.sh的內容如下:
#!/bin/sh
name=$1
echo "the ${name} are great man!"
給新創建的test.sh的腳本賦可執行許可權,命令為「chmod 755 test.sh」。
執行'./test.sh "xiao wang"'命令,可以看到自己編寫腳本的結果「the xiao wang are great man!」。
"name=$1"中$1為系統提供的位置參數,$0代表程序的名稱,[$1/$2/...]從1開始為傳遞的參數。
linux系統除了提供位置參數還提供內置參數,內置參數如下:
$# ----傳遞給程序的總的參數數目
$? ----上一個代碼或者shell程序在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程序的所有參數組成的字元串。
$n ----表示第幾個參數,$1 表示第一個參數,$2 表示第二個參數 ... $0 ----當前程序的名稱
$@----以"參數1" "參數2" ... 形式保存所有參數
$$ ----本程序的(進程ID號)PID
$! ----上一個命令的PID
『貳』 如何向expect腳本裡面傳遞參數
向expect腳本裡面傳遞參數:
比如下面腳本用來做ssh無密碼登陸,自動輸入確認yes和密碼信息,用戶名,密碼,hostname通過參數來傳遞
ssh.exp
Python代碼
#!/usr/bin/expect
set timeout 10
set username [lindex $argv 0]
set password [lindex $argv 1]
set hostname [lindex $argv 2]
spawn ssh--id -i .ssh/id_rsa.pub $username@$hostname
expect "yes/no"
send "yes\r"
expect "password:"
send "$password\r"
expect eof
執行腳本./ssh.exp root pasword hostname1
expect接收參數的方式和bash腳本的方式不太一樣,bash是通過$0 ... $n 這種方式,而expect是通過set <變數名稱> [lindex $argv <param index>],例如set username [lindex $argv 0]
『叄』 按鍵精靈如何實現腳本與腳本間的數據傳遞
Plugin File.WriteFileEx("C:\Documents and Settings\Administrator\桌面\MK's AutoFire.ini", "寫入內容內容")
//=================寫入代碼
Plugin Text = File.ReadFileEx("C:\Documents and Settings\Administrator\桌面\MK's AutoFire.ini")
i=0
f=split(text,"|")
For UBound(f)
MessageBox "一共有[ "&UBound(f)&" ]句"&vbcrlf&"第[ "&i+1&" ]句為: "&f(i)
i=i+1
EndFor
//=================讀出代碼
『肆』 linux 調用腳本怎麼傳腳本參數
Linux shell腳本開始執行時,系統會初始化一些腳本的環境變數和參數變數,這些變數是可以直接使用的,下面是一些參數變數:
$1,$2,$3......:代表腳本程序的參數,腳本有幾個參數數字就到幾;
那$0代表什麼呢?當然是腳本的名字了
還有和腳本參數有關的一個腳本環境變數:$#
它代表傳遞給腳本的參數個數。
知道了這些,你就可以在你編寫的腳本內編寫處理腳本參數的代碼,一旦你的腳本有了對參數的處理,你就可以這樣調用有參數的腳本:
./腳本名 參數1 參數2......
參數和腳本名、參數和參數之間用空格分開,和使用shell命令的格式是一樣的。
『伍』 在按鍵精靈腳本里如何向個句柄後台輸送數字,字母,按鍵我不要數字(下次啟動變化的)句柄
句柄會在你啟動程序時,自動變化。所以你想不要變動的,是沒有的。
而想變化也能傳送字元,就要根據類名找句柄,然後賦值給這個句柄給一個變數
然後再傳遞給這個句柄,這樣就可以做到改變裡面的值了。
『陸』 sqlplus 執行腳本文件時如何傳參數
d:\test.sql腳本如下:
[sql] view plain
select &1 from &2;
exit;
執行時這樣傳參數:sqlplus "scott/tiger@test" @d:\test.sql sysdate al
注意:參數必須用&[1-9]表示,不然傳不進去,會提示讓手動輸入參數
[sql] view plain
C:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate al
D:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate al
SQL*Plus: Release 11.2.0.1.0 Proction on 星期二 11月 1 21:59:00 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
原值 1: select &1 from &2
新值 1: select sysdate from al
SYSDATE
--------------
01-11月-11
從 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷
開
D:\>
如果腳本中有重復用到相同的值,如果&1=&2:
d:\tes2.sql
[sql] view plain
delete scott.emp where no=&1 or deptno=&2;
commit;
執行時,就必須傳2個參數:
[sql] view plain
sqlplus "scott/tiger@test" @d:\test2.sql 10 10
小竅門: 這時用procere就可以不用傳多個相同的參數,則只用傳1個參數:
d:\test3.sql
[sql] view plain
declare
var_no number:=&1;
begin
delete scott.emp where no=var_no or deptno=var_no;
commit;
end;
sqlplus "scott/tiger@test" @d:\test3.sql 10
『柒』 如何實現腳本之間的信息傳遞
我在A腳本(在節點A上)用on注冊了事件監聽 在B腳本(在節點B上)用emit發射事件 為什麼A接收不到事件回調?我嘗試在腳本A裡面emit,就能夠收到。on和emit只能在同一腳本內才可以嗎?不可能吧!那如果實現不同節點上不同腳本之間的事件傳遞呢?
『捌』 如何向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
『玖』 如何向expect腳本裡面傳遞參數
如何向expect腳本裡面傳遞參數 比如下面腳本用來做ssh無密碼登陸,自動輸入確認yes和密碼信息,用戶名,密碼,hostname通過參數來傳遞 ssh.exp Python代碼 #!/usr/bin/expect set timeout 10 set username [lindex $argv 0] set password
『拾』 linux shell腳本,怎樣變數傳遞執行結果
1、shell一般都是放在/bin或者/user/bin目錄下,我們可以使用命令cat /etc/shells命令,查看當前linux系統可用的shell是什麼。