我使用了附加网址中的一些简洁示例。到目前为止我所拥有的是脚本用ssh session打开几个标签。但是因为我连接了几个客户端的服务器,所以我不希望每个客户端都有一个带有硬编码列表的脚本。我想要一个拨号盒询问我想要连接哪个列表......
但是现在我试图添加一个对话框,我被卡住了:
--set wseServer to {"xen", "bcs", "db", "lx", "mgr", "nx", "proxy", "smb", "wiki", "zarafa"} as list
set wseServer to paragraphs of (do shell script "/bin/cat $HOME/.ssh/hostlist-wse-deb.pssh")
--set edlServer to {"edl", "edev", "edb", "emon"}
set edlServer to paragraphs of (do shell script "/bin/cat $HOME/.ssh/hostlist-edl.pssh")
set allServer to wseServer & edlServer
set serverList to button returned of (display dialog "Dude, choose your prefered connection List" buttons {"wseServer", "edlServer", "allServer"} with title "SSH Server" default button 3 with icon caution giving up after 5)
tell application "iTerm"
activate
set myTerm to (make new terminal)
tell myTerm
repeat with hostItem in serverList
set Lsession to (make new session)
tell Lsession
--set secureshell to hostItem exec command "ssh " & hostItem
exec command "ssh " & hostItem
--sleep to prevent errors if we spawn too fast
do shell script "/bin/sleep 0.01"
end tell
end repeat
end tell
end tell
从对话框中选择其中一个项目后,iterm打开8个标签,不执行ssh并关闭它们......没有错误没有任何错误!
这是我正在尝试扩展的示例: http://code.google.com/p/iterm2/wiki/AppleScript
我知道我差不多了,但看不到解决方案!
希望你们中的一个人有一个提示......
提前谢谢
答案 0 :(得分:0)
回答我自己,所以希望也可以帮助其他人:
删除了“告诉应用程序......”之上的所有内容,并添加了:
set sshList to {"WSE", "EDL", "Alle"}
set sshServer to choose from list sshList with title "SSH Server"
if sshServer = {"WSE"} then set serverList to paragraphs of (do shell script "/bin/cat $HOME/.ssh/hostlist-wse-deb.pssh")
if sshServer = {"EDL"} then set serverList to paragraphs of (do shell script "/bin/cat $HOME/.ssh/hostlist-edl.pssh")
if sshServer = {"Alle"} then set serverList to paragraphs of (do shell script "/bin/cat $HOME/.ssh/hostlist-wse-deb.pssh & /bin/cat $HOME/.ssh/hostlist-edl.pssh")
对话框并不像第一次尝试那样令人讨厌,但它有效......
答案 1 :(得分:0)
这可能很有用:https://raw.github.com/luismartingil/scripts/master/iterm_launcher02.applescript
#!/usr/bin/osascript
-- Applescript to launch iterm2 terminals/tabs with configurable:
-- ~ List of commands <cmds>
-- ~ Color <color>
-- ~ Name <name>
-- ~ Transparency <trans>
-- ~ Zoom out <zoomout>
-- ~ Split behavior horizontal(h) or vertical(v) <split> :: (h, v)
--
-- Run from terminal with `osascript` or just ./<<script>>
-- Dont unfocus with the mouse/keyboard while executing. the script.
-- Recomended to go full screen (CMD + Enter) if <zoomout> attributes used.
-- Change myTermWindow and myItem(s) as desired.
--
--
-- Author: Luis Martin Gil http://www.luismartingil.com
-- Year : 2013
tell application "iTerm"
-- First tab
set myItem1 to {}
set myItem1 to myItem1 & {{color:"yellow", cmds:{"echo yellow", "ls -lrt"}, name:"name_yellow", trans:"0.1", zoomout:4, split:"h"}}
set myItem1 to myItem1 & {{color:"blue", cmds:{"echo blue1", "ls -lrt"}, name:"name_blue1", trans:"0.1", zoomout:2, split:"v"}}
set myItem1 to myItem1 & {{color:"blue", cmds:{"echo blue2", "ls -lrt"}, name:"name_blue2", trans:"0.1", zoomout:4, split:"v"}}
set myItem1 to myItem1 & {{color:"blue", cmds:{"echo blue3", "ls -lrt"}, name:"name_blue3", trans:"0.1", zoomout:6}}
-- Second tab
set myItem2 to {}
set myItem2 to myItem2 & {{color:"red", cmds:{"echo red1", "ls -lrt"}, name:"name_red1", trans:"0.1", zoomout:8, split:"h"}}
set myItem2 to myItem2 & {{color:"red", cmds:{"echo red2", "ls -lrt"}, name:"name_red2", trans:"0.1", zoomout:4}}
-- Third tab
set myItem3 to {}
set myItem3 to myItem3 & {{color:"green", cmds:{"echo green", "ls -lrt"}, name:"name_green", trans:"0.1", zoomout:2, split:"v"}}
set myItem3 to myItem3 & {{color:"purple", cmds:{"echo purple", "ls -lrt"}, name:"name_purple", trans:"0.1", zoomout:4}}
set myTermWindow to {myItem1, myItem2, myItem3}
set myterm to (make new terminal)
tell myterm
repeat with n from 1 to count of myTermWindow
launch session n
repeat with i from 1 to count of (item n of myTermWindow)
-- Lets set the properties of the actual tab
tell the last session to set name to name of (item i of (item n of myTermWindow))
tell the last session to set background color to color of (item i of (item n of myTermWindow))
tell the last session to set transparency to trans of (item i of (item n of myTermWindow))
-- Some commands might require more columns to be readable
repeat zoomout of (item i of (item n of myTermWindow)) times
tell i term application "System Events" to keystroke "-" using command down
end repeat
-- Lets execute the commands for the tab
repeat with cmd in cmds of (item i of (item n of myTermWindow))
tell the last session to write text cmd
end repeat
-- Split the pane in a "D" (vertical) or "d" (horizontal) way
if i is less than (count of (item n of myTermWindow)) then
if "h" is split of (item i of (item n of myTermWindow)) then
set split_str to "D"
else if "v" is split of (item i of (item n of myTermWindow)) then
set split_str to "d"
else
error
return
end if
tell i term application "System Events" to keystroke split_str using command down
end if
end repeat
end repeat
end tell
end tell