编辑代码

# 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