Skip to main content

Execute Shell (script step reference)

By June 1, 2023July 12th, 2023Online Help, Troi File Plug-in
Troi File Plug-in for FileMaker Pro

Execute Shell

Execute a command in the (UNIX or Windows) shell of the operating system.

SyntaxScript step badge

Execute Shell [ Select ; Result ; Shell command ; Timeout ; Wait on result ;
                Encoding ; Wait time after exit ; Show command window ]

Options

Select entire contents replaces the contents of a field with the result. If not checked the result replaces the currently selected portion of the field
Result the result of the shell command or an error code
Shell command the command to be executed
Timeout specify the timeout time in seconds (default = 20 seconds)
Wait on result uncheck to execute the shell command without waiting on a result
Encoding the desired character encoding, like UTF-8
Wait time after exit (Windows only) wait the specified seconds after the command finishes
Show command window (Windows only) show the command window when the shell is running

Returned Result

Data type returned

Text

Result

The result of the shell command or an error code

If an error occurs it will start with 2 dollars, followed by the error code. You should always check for errors. Returned error codes can be:

$$-4218 kErrCanNotEnable can not start a shell
$$-4230 kErrTimeout timeout error

Other errors may be returned.

Originated in

Troi File Plug-in 9.0

Compatibility

FileMaker Pro 16 to FileMaker Pro 2023

Considerations

This is a powerful step, with which you can accomplish multiple commands. Please read about the shell command in Unix or Windows before using this.

For Windows: to be able to use spaces and quotes in the command wrap the whole command in 2 extra double quotes, one at the beginning and one at the end, like “”C:\testapp.exe” “test param””

(Windows) If you choose UTF8 Encoding the plug-in indicates invalid UTF-8 characters with the string <INVALID UTF8>.

(macOS) If you need sudo (execute as superuser) you can do this like this:

echo "yourPassword" | sudo -S yourCommand variables etc

For example:

echo "topsecret" | sudo -S  ls -al

This will execute the ls command as the superuser.

(macOS) TIP By default the plug-in only returns results from the Unix standard output (stdout). Some Unix commands send error and diagnostic messages to the standard error output (stderr).
If you want the standard error output to be added to the function result add a redirection to stdout to the end of the Unix command: 2>&1. This will redirect stderr (2) to stdout (1).
For example when using the rm (remove) command you can add the redirect like this:

rm nonexistingfile.txt 2>&1

Instead of an empty result the result will be:

rm: nonexistingfile.txt: No such file or directory

Example

On Windows:

Execute Shell [ Select ; gResult ; "dir C:\"  ]

On macOS :

Execute Shell [ Select ; gResult  ; "ls /" ]

This will list the contents of the root folder.

Example 2

On Windows:

Execute Shell  [ Select ; gResult ;  "echo testtext > C:\example.txt" ;  Timeout: 5  ]

On macOS :

Execute Shell  [ Select ; gResult ; "echo testtext > /example.txt" ;  Timeout: 5  ]

This will create a text file example.txt on your startup disk. If the command takes more time than 5 seconds the plug-in will return with a timeout error $$-4230.

Related functionFunction badge

TrFile_ExecuteShell

Related topics

Troi File Plug-in online help (overview)


Online Help Page for Troi File Plug-in for 16 to 2023 –> Execute Shell (filep7295) 2023-0712 20:56:30