命令
- echo
- read
- 引号
- "$var" 读取变量var的值
- '$var' 整个 \(\$\)var 被当作字符串
环境变量
$HOME 当前用户的家目录,可以用export在命令行里修改,关闭终端界面即可重置
$PATH 以冒号分隔的用来搜索命令的目录列表
$PS1 $PS2 $PS3 $PS4 几种系统默认的提示符,用的时候看
$IFS 输入域分隔符。当Shell 读取输入时,它给出用来分隔单词的一组字符,一般是“空格”和“换行符”
'$0' Shell 脚本的名字
'$#' 传递给脚本的参数个数,如果没有创建参数变量,这个环境变量也一直存在,且默认值为0
'$$' Shell 脚本的进程号,脚本程序通常会用它来生成一个唯一的临时文件,如/tmp/tmpfile
参数变量
#!/bin/bash
# script.sh
echo "第一个参数: $1"
echo "第二个参数: $2"
echo "第三个参数: $3"
# 执行
$ ./script.sh apple banana orange
# 输出:
# 第一个参数: apple
# 第二个参数: banana
# 第三个参数: orange
$* :将所有参数视为一个整体
$@ :将每个参数视为独立个体
#!/bin/bash
# test.sh
count=0
echo "使用 \$*:"
for arg in "$*"; do
((count++)) # 语法要求
echo "参数: $arg"
echo "循环次数:$count"
done
# 执行
./count1.sh a b "c d" e
# 输出:
# 使用 $*:
# 参数: a b c d e
# 循环次数:1
#!/bin/bash
# count2.sh
echo "使用 \$@:"
count=0
for arg in "$@";do
((count++))
echo "参数:$arg"
echo "循环次数:$count"
done
# 执行
./count2.sh a b "c d" e
# 使用 $@:
# 参数:a
# 循环次数:1
# 参数:b
# 循环次数:2
# 参数:c d
# 循环次数:3
# 参数:e
# 循环次数:4