# shell相关说明
# shopt -s nullglob
# shopt -s failglob
# shopt extglob
# rm b*
# echo $date
# echo \$date
# echo \\
# echo a\tb
# echo -e "a\tb"
# echo \
# hello
# echo '$((2+2))'
# echo $'it\'s'
# echo "*"
# echo "`date`"
# echo $(cal)
# echo a
# echo "$(cal)"
# cat << _EOF_
# <html>
# <head>
# <title>
# The title of your page
# </title>
# </head>
# <body>
# Your page content goes here.
# </body>
# </html>
# _EOF_
# cat << test
# hello
# test
# foo='hello world'
# cat << '_example_'
# $foo
# "$foo"
# '$foo'
# _example_
# echo $foo
# cat << token
# string
# token
# # 等同于
# echo string | cat
# cat <<< 'hi here'
# md5sum <<< 'ddd'
# env
# printenv
# echo $PATH
# NAME=foo
# export NAME
# echo ${NAME}
# echo $?
# echo $$
# LOGFILE=/tmp/output_log.$$
# ls -l
# grep dictionary /usr/share/dict/words
# echo $_
# echo $!
# firefox &
# echo $!
# echo $0
# echo $-
# $@
# $#
# 不存在的时候返回 0
# echo ${count:-0}
# 不存在的时候设置默认值
# echo ${count:=0}
# echo ${count:+1}
# echo ${count:?"undifined!"}
# a=10
# filename=${1:?"filename misssing."}
# 声明特殊类型的变量
# declare -i val1=12 val2=5
# declare -i result
# result=val1*val2
# echo $result
# declare -it var=12
# var=foo
# echo $var
# declare -x foo
# # 等同于
# echo $foo
# 声明只读变量
# declare -r bar=1
# bar=2
# echo $?
# unset bar
# echo $?
# declare -u foo
# foo=upper
# echo $foo
# declare -l foo
# foo=LOWER
# echo $foo
# foo=hello
# declare -p foo
# declare -p bar
# declare -f
# declare -F
# readonly foo=1
# foo=2
# echo $?
# let foo=1+2
# echo $foo
# let "foo = 1 + 2"
# echo $foo
# let "v1 = 1" "v2 = v1++"
# echo $v1,$v2
# myvar="test123"
# echo ${#myvar}
# count=frogfootman
# echo ${count:4:4}
# echo ${count:4}
# echo ${count: -1:2}
# myPath=/home/cam/book/long.file.name
# echo ${myPath#/*/}
# echo ${myPath##*/}
# phone="555-456-1414"
# echo ${phone#*-}
# echo ${phone##*-}
# foo=JPG.JPG
# echo ${foo/#JPG/jpg}
path=/home/cam/book/long.file.name
# echo ${path%.*}
# echo ${path%%.*}
# echo ${path%/*}
# file=foo.png
# echo ${file%.png}.jpg
# phone="555-456-1414"
# echo ${phone%-*}
# echo ${phone%%-*}
# foo=JPG.JPG
# echo ${foo/%JPG/jpg}
# echo -e ${PATH//:/'\n'}
# phone="555-456-1414"
# echo ${phone/5?4/-}
# echo ${path/.*/}
# foo=hello
# echo ${foo^^}
# echo ${foo,,}
# ((foo=5+5))
# echo $foo
# echo $((3+5))
# echo $((5/2))
# i=0
# echo $((i++))
# echo $((i))
# echo $(( (2 + 3) * 4 ))
# number=2
# echo $(($number+1))
# # echo $[2+3]
# echo $((0xff))
# echo $((16>>2))
# echo $((16<<2))
# echo $((17&3))
# echo $(( (3 > 2) || (4 <= 1) ))
# a=0
# echo $((a<1 ? 1 : 0))
# echo $((a=1))
# echo $a
# foo=5
# echo $((foo*=2))
# expr 3 + 2
# set -o vi
# set -o emacs
# bash --noediting
# !echo
# env -i /bin/sh
# echo 'Hello World!'
# myPath="/usr"
# ls -- $myPath
# 退出值为0(成功)
# exit 0
# 退出值为1(失败)
# exit 1
# if [ $(id -u) != "0" ]; then
# echo "根用户才能执行当前脚本"
# exit 1
# fi
# if cd $some_directory; then
# rm *
# else
# echo "Could not change directory! Aborting." 1>&2
# exit 1
# fi
# some_directory="/data"
# cd $some_directory && rm *
# foo=1
# echo $foo
# source test.sh
# bash test.sh
# #!/bin/bash
# source
# alias search=grep
# alias today='date +"%A, %B %-d, %Y"'
# today
# alias rm='rm -i'
# rm -rf /data
# alias echo='echo It says: '
# echo hello world
# echo -n "输入一些文本 > "
# read text
# echo "你的输入: $text"
# echo Please, enter your firstname and lastname
# read FN LN
# echo "Hi! $LN,$FN"
# echo -n "Enter one or more values > "
# read
# echo "REPLY = '$REPLY'"
# echo -n "输入一些文本 > "
# if read -t 3 response;then
# echo "用户已经输入了"
# else
# echo "用户没有输入"
# fi
# TIMEOUT=3
# read response
# read -p "Enter one or more values > "
# echo "REPLY = '$REPLY'"
# read -a people
# echo $[people[2]]
# read -n 3 letter
# echo $letter
# echo Please input the path to the file:
# read -e filename
# echo $filename
# read -s password
# echo $password
# read -u fd
# echo $fd
# if test $USER = "foo"; then
# echo "Hello foo"
# else
# echo "others"
# fi
# if echo 'hi'; then
# echo 'hello world'
# fi
# echo -n "输入一个1到3之间的数字(包含两端)> "
# read character
# if [ "$character" = "1" ]; then
# echo 1
# elif [ "$character" = "2" ]; then
# echo 2
# elif [ "$character" = "3" ]; then
# echo 3
# else
# echo "输入不符合要求"
# fi
# test -f /ect/hosts
# echo $?
# ["1" = "1"]
# echo $?
# test -e /ect/hosts
# echo $?
# test 1 == 1
# echo $?
# if((3>2));then
# echo "true"
# fi
# echo -n "输入一个1到3之间的数字>"
# read character
# case $character in
# 1) echo 1
# ;;
# 2) echo 1
# ;;
# 3) echo 1
# ;;
# *)echo "不符合"
# esac
# number=0
# while [ "$number" -lt 10 ]; do
# echo "Number = $number"
# number=$((number + 1))
# done
# until false; do
# echo 'Hi, until looping ...'
# done
# number=0
# until [ "$number" -ge 10 ]; do
# echo "Number = $number"
# number=$((number + 1))
# done
# select book in English Math Langulage
# do
# echo "You chosen $book"
# done
# hello(){
# echo "Hello $1"
# }
# hello 1
# function func_return_value {
# return 10
# }
# func_return_value
# echo "value: $?"
# fn(){
# local foo=1
# echo "fn: foo=$foo"
# }
# fn
# echo "globa: foo=$foo"
# array=(a,b,c)
# array[0]=3
# array[1]=4
# echo ${#array[@]}
# food=( apples bananas cucumbers dates eggs fajitas grapes )
# echo ${food[@]:1:1}
# echo ${food[@]:1:3}
# array[0]=1
# array+=2
# echo ${array[1]}
# shopt
# shopt globstar
mktemp -t mytemp.XXXXXXX
trap -l
# bash -n scriptname