Bash中对输入的处理

2016-09-27  本文已影响0人  群峰

变量替换操作

  1. ${VAR:-value} 如果变量为空,返回新值。
  2. ${VAR:=value} 如果变量为空,返回新值且付给变量。
  3. ${VAR:?message} 如果变量为空,显式一条消息。
  4. ${VAR:offset:length} 截取变量的一部分。

模式匹配操作

  1. ${VAR#pattern} 匹配第一个,返回后面的。
  2. ${VAR##pattern} 匹配最后一个,返回后面的。
  3. ${VAR%pattern} 从后向前匹配第一个,返回前面的。
  4. ${VAR%%pattern} 从后向前匹配至最前,返回前面的。
#!/bin/bash

PASSWD_PATH=$(which passwd)

echo "\$PASSWD_PATH is $PASSWD_PATH"
echo "\${PASSWD_PATH#*/} is ${PASSWD_PATH#*/}"
echo "\${PASSWD_PATH##*/} is ${PASSWD_PATH##*/}"
echo "\${PASSWD_PATH%/*} is ${PASSWD_PATH%/*}"
echo "\${PASSWD_PATH%%/*} is ${PASSWD_PATH%%/*}"

正则表达式

  1. ^text - Line starts with text
  2. text$ - Line ends with text
  3. . - Wildcard, match any single character
  4. [abc], [a-c] - Matchs a, b or c.
  5. * - Matches 0 or an infinitive number of the previous character.
  6. \{2\} - match exactly 2 of the previous character.
  7. \{1, 3\} - minimum 1 and maximum 3 of the previous character.
  8. colou?r - color or colour

数值计算

  1. $((1 + 1))
  2. let X="$1 $2 $3"; echo $X
  3. echo "scale=9; 10/3" | bc
上一篇 下一篇

猜你喜欢

热点阅读