0
点赞
收藏
分享

微信扫一扫

【shell】数学运算、条件判断、循环、引号、括号?


文章目录

  • ​​1. 双引号​​
  • ​​2. 单引号​​
  • ​​3. 反引号​​
  • ​​4. $()​​
  • ​​5. $(())​​
  • ​​6. $[]​​
  • ​​7. ${}​​
  • ​​8. ()​​
  • ​​9. (())​​
  • ​​10. []​​
  • ​​11. [[]]​​

1. 双引号

有特殊意义符号

  • $
  • `
  • \??
jiaming@jiaming-VirtualBox:~/shell_practice$ a=3
jiaming@jiaming-VirtualBox:~/shell_practice$ echo "$a"
3
jiaming@jiaming-VirtualBox:~/shell_practice$ a="<a>"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
<a>
jiaming@jiaming-VirtualBox:~/shell_practice$ a=<a>
bash: 未预期的符号 `newline' 附近有语法错误
jiaming@jiaming-VirtualBox:~/shell_practice$ a= "123"
123:未找到命令
jiaming@jiaming-VirtualBox:~/shell_practice$ a=" 123"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo "$a"
123
jiaming@jiaming-VirtualBox:~/shell_practice$ a="`pwd`"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
/home/jiaming/shell_practice
jiaming@jiaming-VirtualBox:~/shell_practice$ b=abc
jiaming@jiaming-VirtualBox:~/shell_practice$ a="$b"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
abc
jiaming@jiaming-VirtualBox:~/shell_practice$ a="a\nb\nc"
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
a\nb\nc

2. 单引号

无特殊意义字符,可以有空格,纯字符串

jiaming@jiaming-VirtualBox:~/shell_practice$ a='a\nb'
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
a\nb
jiaming@jiaming-VirtualBox:~/shell_practice$ a='$a'
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
$a
jiaming@jiaming-VirtualBox:~/shell_practice$ a='$ a'
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
$ a

3. 反引号

命令

`commands`

4. $()

命令

$(commands)
jiaming@jiaming-VirtualBox:~/shell_practice$ date
20201110日 星期二 15:00:55 CST
jiaming@jiaming-VirtualBox:~/shell_practice$ echo `date`
20201110日 星期二 15:01:02 CST
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $(date)
20201110日 星期二 15:01:11 CST

5. $(())

算数运算

jiaming@jiaming-VirtualBox:~/shell_practice$ echo $(( 1+ 2 ))
3
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $(( 2* 2/3 ))
1

6. $[]

算数运算

jiaming@jiaming-VirtualBox:~/shell_practice$ echo $[ 2* 2/3 ]
1

7. ${}

变量替换、结合数组

#!/bin/bash

a=3
b=5
echo $ab # ab 视作一个变量,输出为空。
echo ${a}b # 输出 3b

exit 0

8. ()

数组

jiaming@jiaming-VirtualBox:~/shell_practice$ a=(1 2 3 4 5)
jiaming@jiaming-VirtualBox:~/shell_practice$ echo $a
1
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[0]}
1
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[1]}
2
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[4]}
5
jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[5]}

jiaming@jiaming-VirtualBox:~/shell_practice$ echo ${a[*]}
1 2 3 4 5

9. (())

高级数学表达,C 语言的 for

#!/bin/bash

for ((i = 0; i < 10; i++))
do
echo -n "$i "
done
echo ""

exit 0

10. []

等价于 test,条件测试

#!/bin/bash

read -p "please enter a number: " num

if [ $num -gt 10 ]; then
echo "num > 10"
else
echo "num <= 10"
fi

11. [[]]

字符串比较,可用正则

#!/bin/bash

if [[ hello == hell* ]]; then
echo "equal"
else
echo "unequal"
fi

exit 0
jiaming@jiaming-VirtualBox:~/shell_practice$ bash sample.sh # 非 sh sample.sh


举报

相关推荐

0 条评论