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 重定向
=
之间不能有空格_
my_name="houbinbin"
已定义的变量可以重新定义
my_name="houbinbin"
my_name="ryo"
my_name="houbinbin"
echo $my_name
houbinbindeMacBook-Pro:shell houbinbin$ vi use_var.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh use_var.sh
houbinbin
readonly
变量不能被更改。
# !/bin/bash
my_name="houbinbin"
readonly my_name
my_name="new name"
houbinbindeMacBook-Pro:shell houbinbin$ vi readonly_var.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh readonly_var.sh
readonly_var.sh: line 4: my_name: readonly variable
使用 unset
来删除定义的变量。
#!/bin/bash
my_name="ryo"
unset my_name
echo ${my_name}
houbinbindeMacBook-Pro:shell houbinbin$ vi unset_var.sh
houbinbindeMacBook-Pro:shell houbinbin$ /bin/sh unset_var.sh
houbinbindeMacBook-Pro:shell houbinbin$
命令 | 描述 |
---|---|
$0 | 当前脚本的文件名 |
$n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 |
$# | 传递给脚本或函数的参数个数。 |
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 |
$? | 上个命令的退出状态,或函数的返回值。 |
$$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 |
#!/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 : $#"
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
$*
和$@
$*
和 $@
都表示传递给函数或脚本的所有参数,不被""
包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。
但是当它们被""
包含时,$*
会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;$@
会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
#!/bin/bash
# Author:houbinbin
echo "display of \$* "
for i in "$*";
do
echo $i
done
echo "display of \$@ "
for i in "$@";
do
echo $i
done
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
本文由博客一文多发平台 OpenWrite 发布!