2012-07-18 2 views
0

내가하려는 것은 Gedit이 이미 열려있는 동안 새 창을 열고 새 창을 열어 새 탭을 열도록하는 것입니다. 제가 쓰고있는 스크립트는 570 줄에 조금 큽니다. 그래서 여기에 그것의 종류가 있습니다.Gedit이 새창으로 열리고 새 탭이 열립니다.

File1="test" 
File2="test2" 
function Gedit() { 
    local newwindow 

    if [ "$2" == "yes" ]; then 
     newwindow="--new-window" 
    fi 

    gedit $newwindow $1 & # & is Very Important b/c of KVIrc 
} 
function FunctionA { 
    Gedit $a "yes" 
    Gedit $b 
} 

FunctionA 

나는이 말에 앰퍼샌드 (&)이라고, 알아 냈어. 그러나 필자가 스크립트를 실행할 때 KVIrc에서 실행하므로 매우 중요합니다. &을 제거하면 KVIrc는 Gedit이 완전히 닫힐 때까지 대기합니다. gedit을 사용하여 -s, --name--sm-client-id을 사용해 보았습니다. 나는 또한 실제로 작동하지 않았다 coproc를 사용하여 시도했다. 어떤 도움이라도 대단히 감사하겠습니다. 고맙습니다. 좋아

+0

당신이 무엇을 요구하고 있는지 명확하지 않습니다. 에디터를 닫을 때까지는 함수가 종료되지 않지만 앰퍼샌드를 그대로두면 Gedit이 작동합니다. 그러나 앰퍼샌드를 남겨두면 정확히 무엇이 발생합니까? – chepner

+0

앰퍼샌드를 입력하면 첫 번째 파일이 새 창에서 열리고 다른 파일은 다른 Gedit 세션에서 열립니다. –

답변

0

이 내가 그것을 해결하는 방법입니다 : 다음과 같이 명령에 대한

function OpenWithGedit() { 
local newwin=$1 
shift 
local outfile ofile i 
local newwindow 

#splits [email protected] into two parts 
ofile=${@:1:$(($#/2))} 
outfile=${@:$(($#/2+1)):$#} 

if [ "$newwin" == "yes" ]; then 
    newwindow="--new-window" 
fi 

for i in $outfile 
do 
    SayE "Gedit" $i #echos $i with some format 
done 
gedit $newwindow $ofile & 
} 

형식은 다음과 같습니다 당신이 많은 $ 파일을 가질 수 있습니다

OpenWithGedit "yes" $File1 $File2 $File3 $File1Out $File2Out $File3Out 

당신이 원하는.