KShell Namespace Reference


Detailed Description

Provides some basic POSIX shell and bash functionality.

See also:
KStringHandler
Since:
3.2


Enumerations

enum  Options { NoOptions = 0, TildeExpand = 1, AbortOnMeta = 2 }
enum  Errors { NoError = 0, BadQuoting, FoundMeta }

Functions

QStringList splitArgs (const QString &cmd, int flags=0, int *err=0)
QString joinArgs (const QStringList &args)
QString joinArgs (const char *const *argv, int argc=-1)
QString joinArgsDQ (const QStringList &args)
QString tildeExpand (const QString &path)
QString homeDir (const QString &user)

Enumeration Type Documentation

Flags for splitArgs().

Enumerator:
TildeExpand  Perform tilde expansion.
AbortOnMeta  Bail out if a non-quoting and not quoted shell meta character is encoutered.

Meta characters are the command separators semicolon and ampersand, the redirection symbols less-than, greater-than and the pipe symbol, the grouping symbols opening and closing parens and braces, the command substitution symbol backquote, the generic substitution symbol dollar (if not followed by an apostrophe), the wildcards asterisk and question mark, and the comment symbol hash mark. Additionally, a variable assignment in the first word is recognized.

Definition at line 40 of file kshell.h.

Status codes from splitArgs().

Enumerator:
NoError  Success.
BadQuoting  Indicates a parsing error, like an unterminated quoted string.
FoundMeta  The AbortOnMeta flag was set and a shell meta character was encoutered.

Definition at line 64 of file kshell.h.


Function Documentation

QStringList KShell::splitArgs ( const QString cmd,
int  flags = 0,
int *  err = 0 
)

Splits cmd according to POSIX shell word splitting and quoting rules.

Can optionally perform tilde expansion and/or abort if it finds shell meta characters it cannot process.

Parameters:
cmd the command to split
flags operation flags, see Options
err if not NULL, a status code will be stored at the pointer target, see Errors
Returns:
a list of unquoted words or an empty list if an error occurred

Definition at line 65 of file kshell.cpp.

QString KShell::joinArgs ( const QStringList args  ) 

Quotes and joins args together according to POSIX shell rules.

Parameters:
args a list of strings to quote and join
Returns:
a command suitable for shell execution

Definition at line 257 of file kshell.cpp.

QString KShell::joinArgs ( const char *const *  argv,
int  argc = -1 
)

Quotes and joins argv together according to POSIX shell rules.

Parameters:
argv an array of c strings to quote and join. The strings are expected to be in local-8-bit encoding.
argc maximal number of strings in argv. if not supplied, argv must be null-terminated.
Returns:
a command suitable for shell execution

Definition at line 283 of file kshell.cpp.

QString KShell::joinArgsDQ ( const QStringList args  ) 

Same as above, but $'' is used instead of '' for the quoting.

The output is suitable for splitArgs(), bash, zsh and possibly other bourne-compatible shells, but not for plain sh. The advantage is, that control characters (ASCII less than 32) are escaped into human-readable strings.

Parameters:
args a list of strings to quote and join
Returns:
a command suitable for shell execution

Definition at line 311 of file kshell.cpp.

QString KShell::tildeExpand ( const QString path  ) 

Performs tilde expansion on path.

Interprets "~/path" and "~user/path".

Parameters:
path the path to tilde-expand
Returns:
the expanded path

Definition at line 355 of file kshell.cpp.

QString KShell::homeDir ( const QString user  ) 

Obtain a user's home directory.

Parameters:
user The name of the user whose home dir should be obtained. An empty string denotes the current user.
Returns:
The user's home directory.

Definition at line 369 of file kshell.cpp.

KDE Home | KDE Accessibility Home | Description of Access Keys