Common Desktop Environment: Användarhandbok för systemadministratörer

Skapa en exekveringssträng för COMMAND-funktioner

Minimikraven för en COMMAND-funktion är två fält - ACTION och EXEC_STRING.

ACTION funktionsnamn
 {
     EXEC_STRING exekveringssträng
 }

Exekveringssträngen är den viktigaste delen av en COMMAND-funktionsdefinition. Den använder syntax som liknar den på kommandoraden i ett terminalfönster, men innehåller ytterligare syntax för hantering av fil- och strängargument.

Generella egenskaper för exekveringssträngar

Exekveringssträngar kan innehålla:

Funktionsargument

Ett argument är information som är nödvändig för att ett kommando eller program ska kunna köras. Kommandoraden nedan kan du t ex använda för att öppna en fil i Textredigeraren:

dtpad filnamn

I det här kommandot är filnamn ett filargument till kommandot dtpad.

Funktioner kan, på samma sätt som program och kommadon, ha argument. Det finns två typer av data som en COMMAND-funktion kan använda:

Använda skal i exekveringssträngar

I de flesta fall finns funktioner och deras program i samma system. Eftersom den normala värddatorn för exekvering av en funktion är databasvärden, behövs ingen särskild syntax.

Exempel:

EXEC_STRING				\
 		/bin/sh -c \
 		'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\
 		echo "\\n*** Välj Stäng på Fönster-menyn för att stänga ***"'

Skapa en funktion som kör ett fjärrprogram

Om ditt program finns i en mapp som är listad i variabeln PATH, kan du ange den körbara filens enkla namn. Om programmet finns någon annanstans måste du använda den absoluta sökvägen till den körbara filen.

Skapa funktioner som inte använder argument

Använd samma syntax i fältet EXEC_STRING som du skulle göra på kommandoraden.

Exempel

Skapa funktioner som accepterar släppta filer

Använd följande syntax för filargumentet:

%Arg_n%

eller

%(Fil)Arg_n%

(File) är valfritt eftersom argument för Arg_n antas (som standard) vara filer. (I "Tolka filargument som en sträng" beskrivs hur du använder syntaxen %(String)Arg_n%.

Med den här syntaxen kan användarna släppa ett datafilobjekt på funktionsikonen för att starta funktionen med filargumentet. Den ersätter det n:te argumentet på kommandoraden. Filen kan vara en lokal fil eller en fjärrfil.

Exempel

Skapa en funktion som frågar efter ett filargument

Använd följande syntax för filargumentet:

%(File)"ledtext"% 

Den här syntaxen skapar en funktion som visar en ledtext för ett filnamn när användaren dubbelklickar på funktionsikonen.

Den här exekveringssträngen visar t ex en dialogruta som frågar efter filargumentet till kommandot wc --w:

EXEC_STRING wc -w %(File)"Räknar ord i filen:"%

Skapa funktioner som accepterar eller frågar efter en släppt fil

Använd följande syntax för filargumentet:

%Arg_n"ledtext"%

eller

%(File)Arg_n"ledtext"%

Syntaxen skapar en funktion som:

Skapa en funktion som frågar efter icke-filargument

Använd följande syntax för icke-filparametern:

%"ledtext"%

eller

(String)%"ledtext"%

(String) är valfritt eftersom text inom citattecken normalt tolkas som strängdata. Den här syntaxen visar en dialogruta som frågar efter icke-fildata. Använd inte syntaxen för att fråga efter ett filnamn.

Den här exekveringssträngen kör t ex kommandot xwd och frågar efter ett värde som ska läggas till varje bildpunkt:

EXEC_STRING xwd -add %"Lägg till värde:"% -out %Arg_1"Filnamn:"%

Tolka filargument som en sträng

Använd följande syntax för argumentet:

%(String)Arg_n%

Den här exekveringssträngen skriver t ex ut en fil med en titel som innehåller filnamn, med hjälp av kommandot lp -ttitel filnamn.

EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"Fil som ska skrivas ut:"%

Skalmöjligheter för funktioner

Ange skalet i exekveringssträngen:

/bin/sh -c 'kommando'
/bin/ksh -c 'kommando'
/bin/csh -c 'kommando'

Exempel

Skapa COMMAND-funktioner för flera filargument

Funktioner kan använda något av följande tre sätt att hantera flera filargument:

Skapa en funktion för icke utbytbara argument

Använd någon av följande syntaxer:

Skapa COMMAND-funktioner för utbytbara filargument

Använd någon av följande syntaxer:

Exempel

Skapa funktioner för flera släppta filer

För att acceptera flera argument för släppta filer och köra en kommandorad i formatet:

kommando fil 1 fil 2 ...

använder du syntaxen:

%Args%

Exempel