拓展阅读

linux Shell 命令行-00-intro 入门介绍

linux Shell 命令行-02-var 变量

linux Shell 命令行-03-array 数组

linux Shell 命令行-04-operator 操作符

linux Shell 命令行-05-test 验证是否符合条件

linux Shell 命令行-06-flow control 流程控制

linux Shell 命令行-07-func 函数

linux Shell 命令行-08-file include 文件包含

linux Shell 命令行-09-redirect 重定向

定义

  • 变量名和=之间不能有空格
  • 必须以 [a-zA-Z] 开头,变量名可以包含_
  • 不能包含标点符号和关键字
  [plaintext]
1
my_name="houbinbin"

重新定义

已定义的变量可以重新定义

  [plaintext]
1
2
my_name="houbinbin" my_name="ryo"

使用

  • use_var.sh
  [plaintext]
1
2
my_name="houbinbin" echo $my_name
  • 运行
  [plaintext]
1
2
3
houbinbindeMacBook-Pro:shell houbinbin$ vi use_var.sh houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh use_var.sh houbinbin

只读


- readonly_var.sh

!/bin/bash

my_name=”houbinbin” readonly my_name

my_name=”new name”

  [plaintext]
1
2
3
- 运行

houbinbindeMacBook-Pro:shell houbinbinvireadonlyvar.shhoubinbindeMacBookPro:shellhoubinbin /bin/sh readonly_var.sh readonly_var.sh: line 4: my_name: readonly variable

  [plaintext]
1
2
3
4
5
6
7
# 删除 使用 ```unset``` 来删除定义的变量。 - unset_var.sh

#!/bin/bash

my_name=”ryo” unset my_name echo ${my_name}

  [plaintext]
1
2
3
- 运行

houbinbindeMacBook-Pro:shell houbinbinviunsetvar.shhoubinbindeMacBookPro:shellhoubinbin /bin/sh unset_var.sh

houbinbindeMacBook-Pro:shell houbinbin$

  [plaintext]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 特殊变量 | 命令 | 描述 | | :------------ |:---------- | |$0 |当前脚本的文件名| |$n |传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。| |$# |传递给脚本或函数的参数个数。| |$* |传递给脚本或函数的所有参数。| |$@ |传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。| |$? |上个命令的退出状态,或函数的返回值。| |$$ |当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。| - special_var.sh

#!/bin/bash echo “File Name: 0” echo “First Parameter : 1” echo “First Parameter : 2” echo “Quoted Values: @” echo “Quoted Values: *” echo “Total Number of Parameters : #”

  [plaintext]
1
2
3
- 运行

houbinbindeMacBook-Pro:shell houbinbin vi special_var.sh houbinbindeMacBook-Pro:shell houbinbin /bin/sh special_var.sh hello world my File Name: special_var.sh First Parameter : hello First Parameter : world Quoted Values: hello world my Quoted Values: hello world my Total Number of Parameters : 3

  [plaintext]
1
2
3
4
5
6
7
8
9
10
> ```$*``` 和 ```$@``` ```$*``` 和 ```$@``` 都表示传递给函数或脚本的所有参数,不被```""```包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。 但是当它们被```""```包含时,```$*``` 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;```$@``` 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。 - diff_demo.sh

#!/bin/bash

Author:houbinbin

echo “display of $* “

for i in “*”; do echo i done

echo “display of @ “ for i in “@”; do echo $i done

  [plaintext]
1
2
3
- 运行

houbinbindeMacBook-Pro:shell houbinbin vi diff_demo.sh houbinbindeMacBook-Pro:shell houbinbin /bin/sh diff_demo.sh 1 2 3 4 display of * 1 2 3 4 display of @ 1 2 3 4 houbinbindeMacBook-Pro:shell houbinbin$ ```

参考资料

https://www.runoob.com/linux/linux-shell.html