wait
This command behaves the same as the run command, except that it waits for the completion of the process or program before continuing.
Version | Platforms |
---|---|
8.0.584.0 | AIX, HP-UX, Mac, Red Hat, SUSE, Solaris, Windows |
8.1.535.0 | Debian, Ubuntu |
Syntax
wait <command-line>
The
The wait
command checks the exit code of the executable.
The wait
command has two available override keywords: timeout_seconds
, and disposition
.
See the override documentation for details.
On Windows
On a Windows computer, this command has the same effect as calling the CreateProcess function with <command-line>
. This is also the same as using <command-line>
in the Windows Run dialog.
The use of quotes ("") is recommended practice, and necessary if there are spaces in the path of the executable or in its parameters.
Examples:
Run the scandskw.exe program and wait for it to complete.
wait "scandskw.exe"
On non-Windows platforms
The wait command expects to run a single executable, not a series of commands.
If you need to wait for a series of commands to complete:
- you can pass them as a string to your shell
- you can create a shell script and run it
If you want to run inline shell commands, you can do as follows
wait /bin/sh -c "your command"
However, compared to typing your command in the terminal, the following differences apply:
- your command string must start with double quotes ("), not with single quotes (')
- to access the value of a variable declared in your command string, do not escape the $
- changes to your environment variables might be lost
Examples:
To create a file with a bit of text. Note that you must start the command string with double quotes, but can use single quotes inside it. Quote escaping works as expected.
/bin/sh -c "echo 'my text' > \"/root/Desktop/my file.txt\""
To initialize an environment variable and print it to a file, the command in the terminal would be
/bin/sh -c 'export MY_ENV_VAR="my value"; /bin/echo "$MY_ENV_VAR" > /root/Desktop/myFile.txt'
or
/bin/sh -c "export MY_ENV_VAR='my value'; /bin/echo \$MY_ENV_VAR > /root/Desktop/myFile.txt"
But to run it with the wait command, you would write it as follows
/bin/sh -c "export MY_ENV_VAR='my value'; /bin/echo $MY_ENV_VAR > /root/Desktop/myFile.txt"
Just remember that, after the command ends, changes to MY_ENV_VAR will be discarded.
To create a shell script and run it.
delete __createfile
createfile until END_OF_FILE
#!/bin/sh
export MY_ENV_VAR="my_value"
/bin/echo "$MY_ENV_VAR5" > "/root/Desktop/my_file.txt"
END_OF_FILE
delete my_script.sh
move __createfile my_script.sh
wait chmod +x ./my_script.sh
wait /bin/sh -c "./my_script.sh"
delete my_script.sh