123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- .. SPDX-License-Identifier: GPL-2.0+
- setexpr command
- ===============
- Synopsis
- --------
- ::
- setexpr[.b, .w, .l .s] <name> [*]<value> <op> [*]<value2>
- setexpr[.b, .w, .l] <name> [*]<value>
- setexpr <name> fmt <format> [value]...
- setexpr <name> gsub r s [t]
- setexpr <name> sub r s [t]
- Description
- -----------
- The setexpr command is used to set an environment variable to the result
- of an evaluation.
- setexpr[.b, .w, .l .s] <name> [*]<value> <op> [*]<value2>
- Set environment variable <name> to the result of the evaluated
- expression specified by <op>.
- setexpr[.b, .w, .l] name [*]value
- Load <value> into environment variable <name>
- setexpr name fmt <format> value
- Set environment variable <name> to the result of the C like
- format string <format> evaluation of <value>.
- setexpr name gsub <r> <s> [<t>]
- For each substring matching the regular expression <r> in the
- string <t>, substitute the string <s>.
- The result is assigned to <name>.
- If <t> is not supplied, use the old value of <name>.
- setexpr name sub <r> <s> [<t>]
- Just like gsub(), but replace only the first matching substring
- The setexpr command takes the following arguments:
- format
- This parameter contains a C or Bash like format string.
- The number of arguments is limited to 4.
- The following format types are supported:
- c
- single character
- d, i
- decimal value
- o
- octal value
- s
- string
- u
- unsigned decimal value
- x, X
- hexadecimal value
- '%'
- no conversion, instead a % character will be written
- Backslash escapes:
- \" = double quote
- \\ = backslash
- \a = alert (bell)
- \b = backspace
- \c = produce no further output
- \f = form feed
- \n = new line
- \r = carriage return
- \t = horizontal tab
- \v = vertical tab
- \NNN = octal number (NNN is 0 to 3 digits)
- name
- The name of the environment variable to be set
- op
- '|'
- name = value | value2
- '&'
- name = value & value2
- '+'
- name = value + value2
- (This is the only operator supported for strings.
- It acts as concatenation operator on strings)
- '^'
- name = value ^ value2
- '-'
- name = value - value2
- '*'
- name = value * value2
- '/'
- name = value / value2
- '%'
- name = value % value2
- r
- Regular expression
- s
- Substitution string
- t
- string
- value
- Can either be an integer value, a string.
- If the pointer prefix '*' is given value is treated as memory address.
- value2
- See value
- Example
- -------
- ::
- => setexpr foo fmt %d 0x100
- => echo $foo
- 256
- =>
- => setexpr foo fmt 0x%08x 63
- => echo $foo
- 0x00000063
- =>
- => setexpr foo fmt %%%o 8
- => echo $foo
- %10
- =>
- Configuration
- -------------
- The setexpr gsub and sub operations are only available if CONFIG_REGEX=y.
- Return value
- ------------
- The return value $? is set to 0 (true) if the operation was successful.
- If an error occurs, the return value $? is set to 1 (false).
|