终有一日,寻梦中人
814 字
4 分钟
Linux Bash Shell 脚本编写

&> /dev/null
可放于echo末尾用于保持桌面整洁
shell脚本
创建文件时在末尾添加 .sh
在文件中首行写入#!/bin/bash后正常输入命令
保存后可使用sh +路径执行
也可给该文件添加执行权限x
直接输入该路径即可执行
read [用户输入数据] [变量名]:让用户输入数据并赋值到该变量(可在输入数据前加-p ”信息”,在输入数据时显示信息)
let 变量名++/—:使变量自增/自减1
参数
’#:'** 参数数量总和
**'*:’ 所有参数
’num:’ 对应位置为第num的参数
测试语句
格式: 条件表达式
-d:测试文件是否为目录类型-e:测试文件是否存在-f:判断是否为一般文件-r/w/x:测试当前用户是否有r/w/x权限
若判断结果为真则返回0,若判断结果为假则返回其他非零值
例:
[ -d /etc/abcde ]
echo $?
若该文件为目录类型则会输出
0
若该文件不为目录类型则会输出其他非零值
整数比较:
格式:[ num1 运算符 num2 ]-eq:是否等于-ne:是否不等于-gt:是否大于-lt:是否小于-le:是否等于或小于-ge:是否大于或等于
如遇到报错”[: -gt: unarg operator expected”可用a=$((a))将变量转换为整数类型
字符串比较:
- =:比较字符串内容是否相同(!=为不同)
- 例:[ b ]:若相同则返回值为非零值,若不同则返回非零值
- -z:判断字符串内容是否为空
- 例:[ -z $a ]:若字符串为空则返回0,若不空则返回非零值
逻辑语句:
- 一般基于测试结果进行,跟在测试语句后
- 逻辑与:&&:在测试结果为真时才会执行
- 例:[ -d /etc/a ] && echo “执行成功”
- 若判断为假则不会有输出,若判断为真则会输出执行成功
- 逻辑或:||:在测试结果为假时才会执行
- 逻辑非:! : 将判断结果取反,直接加在条件表达式的首位
if条件测试语句:
单分支:
if[条件]为0则执行,不为0则不执行then (指令)fi (结束)
双分支:
if[条件]then(指令)#若条件为0则会执行该指令else(指令)#若条件不为0则会执行该指令fi
多分支:
if[条件]then (命令)elif[条件2]then (命令2)else (命令3)if
在条件中判断为0后会执行对应的then后的命令
for循环:
for [变量] in [取值列表]do 命令列表done
不解释 可配合cat遍历列表文件的所有行
for a in $(cat “./列表文件")do echo "$a"done
while循环:
while 条件测试操作
do 命令done
用exit 0跳出循环
case:
case “变量值” in模式1)
命令
;;模式2)
命令
;;............*)# 以上都无法匹配时执行该命令esac
例:
read输入字符
case "输入的字符" in
[a-z] | [A-Z] ) echo "字母" ;;[0-9] ) echo "数字" ;;*) echo "特殊字符"esac
Linux Bash Shell 脚本编写
https://astro.sumi233.top/posts/linux/linux-bash-shell-脚本编写/