You are on page 1of 4

CentOS

Shell

1.
2.
3. (())
4. read

Shell Shell ${var} $var


${var-DEFAULT} var DEFAULT *
${var:-DEFAULT} var DEFAULT *
${var=DEFAULT} var DEFAULT *
${var:=DEFAULT} var DEFAULT *
${var+OTHER} var OTHER
${var:+OTHER} var OTHER
${!varprefix*} varprefix
${!varprefix@} varprefix

* var$var

# var1
$ var1=
$ var2=unix
# var1 var1
$ echo ${var1-linux}

# var1 linux
$ echo ${var1:-linux}
linux
# vara linux
$ echo ${vara-linux}
linux
#
$ echo $var1,$var2,$vara
,unix,
# var2 var2
# ${var2-linux} ${var2:-linux}
$ echo ${var2-linux}
unix
$ echo ${var2:-linux}
unix
# var1 linux
$ echo ${var1+linux}
linux
# var2 linux
$ echo ${var2+linux}
linux
# var1
$ echo ${var1:+linux}

# var2 ${var2+linux}
$ echo ${var2:+linux}
linux
# vara
$ echo ${vara+linux}

# vara ${vara+linux}
$ echo ${vara:+linux}

#
$ echo $var1,$var2,$vara
,unix,
# var
$ echo ${!var*}
var1 var2
# ${!var*}
$ echo ${!var@}
var1 var2

echo $var1,$var2,$vara

Shell if


${#string} $string

${string:position} $string, $position


${string:position:length} $string, $position$length
${string#substring} $string, $substring
${string##substring} $string, $substring
${string%substring} $string, $substring
${string%%substring} $string, $substring
${string/substring/replacement} $replacement, $substring
$string$substring, $replacement
${string/#substring/replacement}
$substring
$string$substring, $replacement
${string/%substring/replacement}
$substring

$ str='I love linux. I love UNIX too.'


# str
$ echo ${#str}
30
# str13
$ echo ${str:13}
I love UNIX too.
# str75
$ echo ${str:7:5}
linux
# I love
$ echo ${str#I love}
linux. I love UNIX too.
# I .
$ echo ${str#I*.}
I love UNIX too.
# I .
$ echo ${str##I*}
# I love J'aime
$ echo ${str/I love/"J'aime"}
J'aime linux. I love UNIX too.
# too. also.
$ echo ${str/%too./also.}
I love linux. I love UNIX also.

bash

bash bc

Chet Ramey Bash 2.04 shell ((...)) C


Shell let
expr

shell

# shell
# ** %
$ ((a=2+3**2-1001%5))
$ echo $a
10
#
$ a=$((2+3**2-1001%5))
#
$ echo $((2+3**2-1001%5))
10
# C +=
$ echo $((a+=2))
12
# C /
# a++ ++a
$ echo $((a++))
12
$ echo $((++a))
14
# 10
$ echo $((2+3**2>1001%5))
1
$ echo $((2+3**2<1001%5&&a))
0

Shell

Shell read read

read [] [<> ...]

-p prompt
-t timeout

#
$ read -p "Please input 3 numbers: " n1 n2 n3
Please input 3 numbers: 1 22 333
#
$ echo $n1 $n2 $n3
1 22 333
#
$ read -p "Please input 2 strings: " s1 s2
Please input 2 strings: centos ubuntu
#
$ echo $s1 $s2
centos ubuntu
#
$ read -p "Please input a line: " myline
Please input a line: I love Linux and all FLOSS.
#
$ echo $myline
I love Linux and all FLOSS.
# 10
$ read -t 10 nowaiting
# 10
#
$ echo $nowaiting

#
#
$ read -t 10 nowaiting
wait me!
#
$ echo $nowaiting
wait me!
$

You might also like