Syntax
switch (string)
{
case expression1:
statement1a; [statement1b; …] [break;]
case expression2:
statement2a; [statement2b; …] [break;]
default: statement3a; [statement3b; …] [break;]
}
Description
The switch statement tests whether an expression matches one of several values (each of which is specified in a case statement) and branches accordingly. If a case matches the value, execution will begin at that case falling through to subsequent cases until a break statement occurs. The break statement forces an immediate exit from the switch statement; it is optional.
The default statement runs if none of the cases match the value. This statement is optional. If there is no default and none of the cases match the value, nothing happens. Case statements can be in any order, but the default statement, if present, must occur after all of the case statements.
Examples
switch (user) {
case "leslie":
runuser="sys";
break;
case "adrian":
accept;
case "cory":
case "jamie":
runuser = "root";
accept;
default:
reject;
}
switch (gidnum){
case 0: runuser="root"; break;
default: break;
}
See Example 9: Switch and case statements for additional usage examples.
Syntax
while ( expression ) statement
Description
The while statement is a looping statement. It repeatedly runs the specified statement while the specified expression evaluates to true (any non-zero value). The while statement terminates when the specified expression evaluates to false (the value 0) or it encounters a break statement.
The specified statement may not run if the specified expression initially evaluates to false (unlike the do-while statement, which always runs its specified statement at least once).
Use a statement block in the form { statement ... } to run multiple statements in the loop. One Identity recommends using a statement block for readability.
Examples
This prints the values 1,2,3,4,5:
x = 1;
while (x <= 5) print(x++);
This prints the values 1,2,3,4,5 and uses a statement block:
x = 1;
while (x <= 5) {
print(x);
x++;
}
This prints the values 1,2,3 because the break statement terminates the loop:
x=1;
while (x <= 5) {
if (x > 3) break;
print(x++);
}
See Use the while loop for more usage examples.
Privilege Manager for Unix Built-in Functions and Procedures
This section documents the syntax and usage of the built-in functions and procedures that are available to use within the policy file. They are listed in the following categories:
These are the built-in environment functions available to use within the policy file.
Table 34: Environment functions
getenv |
Return the value of an environment variable in runenv. |
getlistsetting |
Return a list of the settings in the current policy server host settings file. |
getnumericsetting |
Return the integer of the numeric setting in the current policy server host settings file. |
getstringsetting |
Returns the value of a string setting in the current policy server host settings file. |
getyesnosetting |
Returns the value of a yes/no setting in the current policy server host settings file. |
keepenv |
Remove all except the specified variables from the runenv. |
policygetenv |
Set the value of the local variable to the value of the environment variable on the policy server. |
policysetenv |
Locally set the environment variable on the policy server host. |
policyunsetenv |
Locally unset an environment variable on the policy server. |
setenv |
Set a runtime environment variable. |
unsetenv |
Remove an environment variable from the runtime environment |