Über Skript mehrere Tabs in Konsole öffnen
Servus zusammen,
mit diesem [¹] Schnippsel versuche ich, eine konsole (also das
KDE-Konsolen-Programm) und darin dann mehrere Tabs zu öffnen.
Anschließend sollen ssh-Verbindungen auf allerlei Server hergestellt
werden.
Das funktioniert im Prinzip auch soweit. Allerdings öffnen sich die Tabs
nicht in einer neu gestarteten konsole, sondern in irgend einer konsole,
die gerade irgendwo offen ist.
Hat jemand eine Idee, wie ich erreichen kann, daß die Tabs in einer
bestimmten, extra neu gestarteten Konsole öffnen?
Danke, und viele Grüße!
[1]
#!/bin/bash
if [[ ! "$profile" ]]; then
profile=Shell
fi
sessions=(
ssh1 $profile 'clear; ssh server1'
ssh2 $profile 'clear; ssh server2'
ssh3 $profile 'clear; ssh server3'
)
nsessions=0
#####################################################################
# Start sessions in konsole.
function start_sessions()
{
local session_count=${#sessions[*]}
local i=0
while [[ $i -lt $session_count ]]
do
local name=${sessions[$i]}
let i++
local profile=${sessions[$i]}
let i++
local command=${sessions[$i]}
let i++
echo "Creating $name: $command"
# Starting with a specific profile appears to be broken.
#local session_num=$(qdbus org.kde.konsole /Konsole newSession
$profile $HOME)
local session_num=$(qdbus org.kde.konsole /Konsole newSession)
sleep 0.1
qdbus org.kde.konsole /Sessions/$session_num setTitle 0 $name
sleep 0.1
qdbus org.kde.konsole /Sessions/$session_num setTitle 1 $name
sleep 0.1
qdbus org.kde.konsole /Sessions/$session_num sendText "$command"
sleep 0.1
qdbus org.kde.konsole /Sessions/$session_num sendText $'\n'
sleep 0.1
let nsessions++
done
}
read -p "Create konsoles? " ans
if [[ "${ans:0:1}" == 'y' ]]; then
start_sessions
# Activate first session.
while [[ $nsessions -gt 1 ]]
do
qdbus org.kde.konsole /Konsole prevSession
let nsessions--
done
fi
--
Andre Tann
Reply to: