Skip to main content

Parameter Substitution

Manipulating and/or expanding variables

${parameter}

    Same as $parameter, i.e., value of the variable parameter. In certain contexts, only the less ambiguous ${parameter} form works.

${parameter-default}, ${parameter:-default}

    If parameter not set, use default.

${parameter=default}, ${parameter:=default}

    If parameter not set, set it to default.

${parameter+alt_value}, ${parameter:+alt_value}

    If parameter set, use alt_value, else use null string.

${parameter?err_msg}, ${parameter:?err_msg}

    If parameter set, use it, else print err_msg and abort the script with an exit status of 1.

Variable length / Substring removal

${#var}

    String length (number of characters in $var). For an array, ${#array} is the length of the first element in the array.

${var#Pattern}, ${var##Pattern}

    ${var#Pattern} Remove from $var the shortest part of $Pattern that matches the front end of $var.

    ${var##Pattern} Remove from $var the longest part of $Pattern that matches the front end of $var.

${var%Pattern}, ${var%%Pattern}

    ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.

    ${var%%Pattern} Remove from $var the longest part of $Pattern that matches the back end of $var.

Variable expansion / Substring replacement

    These constructs have been adopted from ksh.
${var:pos}

    Variable var expanded, starting from offset pos.
${var:pos:len}

    Expansion to a max of len characters of variable var, from offset pos. See Example A-13 for an example of the creative use of this operator.
${var/Pattern/Replacement}

    First match of Pattern, within var replaced with Replacement.

    If Replacement is omitted, then the first match of Pattern is replaced by nothing, that is, deleted.
${var//Pattern/Replacement}

    Global replacement. All matches of Pattern, within var replaced with Replacement.

    As above, if Replacement is omitted, then all occurrences of Pattern are replaced by nothing, that is, deleted.

${var/#Pattern/Replacement}

    If prefix of var matches Pattern, then substitute Replacement for Pattern.
${var/%Pattern/Replacement}

    If suffix of var matches Pattern, then substitute Replacement for Pattern.

${!varprefix*}, ${!varprefix@}

    Matches names of all previously declared variables beginning with varprefix.

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...