Bash 基础
参考:《鸟哥的 Linux 私房菜》
1. Shell 与 Bash
查看系统支持的 Shell:
cat /etc/shells查看当前使用的 Shell:
echo $SHELL脚本声明(Shebang):
#!/bin/bash2. 变量
2.1 基本赋值
x=1
y="this is a string"
echo $x
echo $y[dmtsai@study ~]$ name=VBird
[dmtsai@study ~]$ echo $name
VBird注意:赋值时等号两边不能有空格。
2.2 引号区别
# **双引号会"解析"变量,而单引号会把所有内容当作"纯文本"**
# 双引号
[dmtsai@study ~]$ myname="$name its me"
[dmtsai@study ~]$ echo $myname
VBird its me
# 单引号
[dmtsai@study ~]$ myname='$name its me'
[dmtsai@study ~]$ echo $myname
$name its me2.3 数组
arr=(1 2 3 4)
echo ${arr[@]}
echo ${arr[0]}
files=$(ls)
echo ${files[@]}2.4 环境变量
export MY_ENV=1000
echo $MY_ENV2.5 变量默认值
# 默认值 但不赋值
echo ${var1:-"hello1"}
# 默认值 且赋值
echo ${var2:="hello2"}2.6 删除变量
unset varname3. 脚本参数
# 脚本名称
echo $0
# 脚本第一个参数
echo $1
echo $2
echo $3
# 脚本参数个数
echo $#4. 命令别名与历史命令
# 设置别名
alias ll='ls -l'
# 取消别名
unalias ll5. 条件判断
a=1
b=2
if [ $a -gt $b ]; then
echo "a 更大"
else
echo "a 更小"
fi6. 循环
for 循环
for num in 1 2 3 4 5; do
echo "this is : $num"
done
for file in $(ls); do
echo $file
donewhile 循环
num=1
while (($num < 5)); do
echo $num
let "num++"
done7. 函数
function bidaxiao(){
if [ $1 -gt $2 ]; then
echo "big"
else
echo "small"
fi
}
bidaxiao 1 38. Shell 变量功能
echo $PATH
echo ${PATH}