shell 内置命令,就是由 Bash shell 自身提供的命令,而不是文件系统中的可执行文件
使用type 来确定一个命令是否是内置命令:
type 命令
通常来说,内置命令会比外部命令执行得更快:
好处: 可以将经常操作比较复杂的命令进行设置别名,通过别名的操作提高工作效率
alias 别名="命令"
这里使用单引号或双引号都可以
删除指定的别名
unalias 别名
删除当前Shell环境中所有的别名
unalias -a
注意: 以上2种方式删除都是临时删除当前Shell的别名,如果想永久删除必须去配置文件中手动删除
举例:
alias pslist="ps -aux" 查看所有进程
alias wn1="watch -n 1 nvidia-smi" 1s刷新一次nvidia-smi界面
默认输出换行语法
echo 字符串
输出不换行语法
echo -n 字符串
echo -e "hello \nworld" # -e 可解析转义字符
\c清除echo结尾换行
read 是 Shell 内置命令,用于从标准输入中读取数据并赋值给变量。
read [-options] [varl var2 ..]
案例:读取多个字符
#!/bin/bash
#打印每一个变量的值
#使用read命令读取数据,要有提示信息"请输入姓名,年龄,爱好:”将数据赋值给多个变量
read -p “请输入姓名,年龄,爱好:” name age hobby
echo "姓名:${name}"
echo "年龄:${age}"
echo "爱好:${hobby}"
案例:读取一个字符
#!/bin/bash
# 使用read命令读取数据,要有提示信息 "您确定要删除数据吗?(请输入y/n):" 并且设置读取一个字符
read -n 1 -p "您确定要删除数据吗?(请输入y/n):" char
# 打印这个字符输出
printf "\n"
echo "您输入的字符: ${char}"
案例:限制时间输入
#!/bin/bash
# 使用read命令读取数据,要有提示信息"请输入密码(20秒内):" 并且设置限制时间20秒
read -t 20 -sp "请输入密码(20秒内 ):" pwd1
echo
read -t 20 -sp "请再次输入密码(20秒内):" pwd2
echo
# 校验密码与再次输入的密码是否一致
if [ $pwd1 == $pwd2 ]
then
echo"密码与确认密码一致,验证通过"
else
echo "密码与确认密码不一致,验证失败"
fi
s 静默模式
exit 用于退出当前Shell环境进程结束运行,并且可以返回一个状态码.一般使用 $? 可以获取退出状态码
正确退出
exit
错误退出
exit 非0数字 #配合$?用于业务处理
1.declare设置变量的属性[重要]
declare -i age=20 #设置整形变量
declare +i age #取消限制
declare -r age #只读变量
2.查看全部Shell变量与函数
declare 查看全部Shell变量与函数
declare -f 查询所有函数的定义
declcare -F 查询所有函数的名称列表
3.实现关联数组变量
关联数组也称为“键值对 (key-value)”数组,键(key) 也即字符形式的数组下标,值(value) 也即元素值
declare -A 关联数组变量名=([字符串key1]=值1 [字符串key2]=值2 ...)
获取key值:
${关联数组变量名[key]}
${关联数组变量名[*]}
${关联数组变量名[@]}
shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试功能与[]一样
if test 数字1 options 数字2
then
...
fi
test "a" == "b"; echo $?
test "a" \> "b"; echo $?
1.6.3 文件比较
test -e /home/w/pty.txt; echo $?
test -r /home/w/pty.txt; echo $?