#!/bin/bash my_name="jxq" echo $my_name echo ${my_name} # ------------------------------------ # 字符串操作 # ------------------------------------ # 单引号字符串的限制,双引号没有这些限制: # 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的 # 单引号字串中不能出现单引号(对单引号使用转义符后也不行) name="will" age=24 my_full_name='${name}${age}' echo ${my_full_name} my_full_name="${name}${age}" echo ${my_full_name} # 字符串拼接 echo ${name}${age} # 字符串长度 echo ${#name} # 4 # substring message="I want to be healthy" echo ${message:2} # want to be health, 2是position echo ${message:2:4} # want,2是position,4是len # delete shortest match from front: ${string#substring} echo ${message#*want} # delete shortest match from back: ${string%substring} echo ${message%healthy} # delete longest match from front: ${string##substring} echo ${message##*h} # delete longest match from back: ${string%%substring} echo ${message%%t*} # find and replace: ${string/pattern/replacement} book_name="Catch Eye Eye" echo ${book_name/Eye/Cat} # find and replace all match: ${string//pattern/replacement} echo ${book_name//Eye/Cat} file_path="/usr/local/bin" # only replace when pattern match the beginning: ${string/#pattern/replacement} echo ${file_path/#\/usr/tmp} # only replace when pattern match the end: ${string/%pattern/replacement} echo ${file_path/%bin/tmp} # string index stringZ=abcABC123ABCabc echo `expr index "$stringZ" C12` # Mac OSX不支持expr # ------------------------------------ # 语句 # ------------------------------------ # if if true then echo "ok, true" fi # 写成一行 if true; then echo "ok"; fi var='12' if [ $var -eq 12 ]; then echo "This is a numeric comparison if example" fi if [ "$var" = "12" ]; then echo "This is a string if comparison example" fi if [[ "$var" = *12* ]]; then echo "This is a string regular expression if comparison example" fi name="jxq" if [ "$name" = "jxq" ]; then echo "hello" $name fi # 循环语句 for item in `ls *.sh` do echo $item echo "completed" done # 写成一行 for item in `ls *.sh`; do echo $item; echo "completed"; done; counter=1 while : do echo "bee" let "counter=$counter+1" if [ $counter -eq 3 ]; then break # break/continue与Java类似 fi done # Case语句 opt="install" case "${opt}" in "install" ) echo "install..." exit ;; "update" ) echo "update..." exit ;; *) echo "bad opt" esac