Shell
命令行解释器
Linux符号|
>
>>
<
<<
|
管道符,将|
前面命令执行后的结果,作为|
后面命令的主语。>
将>
前面命令执行后的结果,写进>
后面的文件夹里(覆盖)。>>
将>>
前面命令执行后的结果,写进>>
后面的文件夹里(追加)。<
将<
后的文件里的内容输入到控制台中。<<
<<
+分隔符
;从标准输入中读取,直到遇到分隔符为止。
Shell解释器的种类
在Linux/MacOS
下执行命令:cat /etc/shells
可以看到以下就是本机上的解释器种类
- 其中
bash
是Linux
上较多使用的解释器 zsh
是MacOS
上较多使用的解释器
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
以下关于
Shell
代码内容,都以MacOS
的zsh
来作为解释器演示;在Linux
环境一般只需替换zsh
->bash
即可。
Shell变量
编写下列shell
脚本文件,并执行:
- 可能会遇到权限问题而导致无法执行:
- 1 )
chmod 777 helloWorld.sh
赋予权限. 2 )./helloWorld.sh
执行. /bin/zsh helloWorld.sh
- 1 )
#!/bin/zsh
A=1+6 # 定义变量
echo A # 打印"A"
echo $A # 打印A变量
A=7 # 重新赋值A变量
echo $A # 打印A变量
unset A # 撤销A变量
echo $A # 打印A变量
# readonly-test
readonly B=6+1 # 定义只读变量
echo B # 打印"B"
echo $B # 打印B变量
B=7 # 重新赋值A变量
unset B # 撤销B变量失败
echo $B # 打印B变量
- 执行结果:
A
1+6
6+1
./helloWorld.sh:9: read-only variable: B
由上面的shell
代码执行完毕的结果可得出结论:
shell
变量默认类型都是字符串,无法进行数值计算echo
为输出语句$
符,为取变量的符号,想要取对应变量必须加此符号unset
撤销变量readonly
只读,将变量修饰为只读状态,不允许修改与unset
撤销
以上的情况都只能在同一个文件内部取得操作变量(局部变量),若要在多处取得变量则需要声明为全局变量(使用export
修饰)
特殊变量
$n
:(功能描述:n为数字,$0代表该脚本名称,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如 9代表第一到第九个参