2013-03-10 59 views
3

我知道我可以使用運行放在裏面gist.github.com的bash腳本如下:運行預期的腳本,在gist.github.com

bash -c "$(curl -fsSL https://raw.github.com/gist/5126919)" <arg0> <arg1> 

我該怎麼做了期待腳本一樣嗎?

我這裏有一個例子:

https://gist.github.com/simkimsia/5126919

#!/usr/bin/expect -f 

set CHANGESHELL_FOR_USER [lindex $argv 0]; 
set PASSWORD_OF_USER [lindex $argv 1]; 

######################################## 
## switch to another user 
## read this http://stackoverflow.com/a/1988255/80353 
######################################## 
sudo -u $CHANGESHELL_FOR_USER -H sh -c "chsh -s /bin/bash" 

expect "*?assword:*" {send -- "$PASSWORD_OF_USER\r";} 
expect eof 

我的目的是給chsh命令爲特定的用戶。

回答

0

Bash和ksh的支持進程替換,所以你可以嘗試這樣的:

expect <(curl ...) arg1 arg2 ...

我能想到的唯一的問題是,$argv0值是不是我們平時期待。您可以考慮在腳本中對其進行硬編碼。