Shell基础
记录一下命令,持续更新
# 文件开头
声明解释器位置
# 安全性较强写法
#!/bin/sh
# 适配性更强写法
#!/usr/bin/env bash
# 输出
# 普通输出
echo 你好
# 格式化输出
printf "%-10s %-8s %-4s\n" 姓名 性别 分数
printf "%-10s %-8s %-4.2f\n" 小婷 女 99.9
printf "%-10s %-8s %-4.2f\n" 小家 男 59.9
# 调试
sh -x bash.sh
# 比较
# 数值比较
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne 不等于则为真 | |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
# 字符串比较
参数 | 说明 |
---|---|
= | 等于则为真 |
!= | 不相等则为真 |
-z 字符串 | 字符串的长度为零则为真 |
-n 字符串 | 字符串的长度不为零则为真 |
# 文件比较
参数 | 说明 |
---|---|
-e 文件名 | 如果文件存在则为真 |
-r 文件名 | 如果文件存在且可读则为真 |
-w 文件名 | 如果文件存在且可写则为真 |
-x 文件名 | 如果文件存在且可执行则为真 |
-s 文件名 | 如果文件存在且至少有一个字符则为真 |
-d 文件名 | 如果文件存在且为目录则为真 |
-f 文件名 | 如果文件存在且为普通文件则为真 |
-c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
-b 文件名 | 如果文件存在且为块特殊文件则为真 |
# 判断
# 只有if
if test 1 -eq 1
then
echo '条件1'
fi
# if-else
if test 1 -eq 1
then
echo '条件1'
else
echo '条件2'
fi
# if-elseif-else
if test 1 -eq 1
then
echo '条件1'
elif 1 -eq 2
then
echo '条件2'
else
echo '条件3'
fi
# 传递参数
sh -x bash.sh 1,2,3
# 获取参数
$0 第一个参数
$1 第二个参数
$2 第三个参数
# 变量及使用
# 定义变量
name=mediocre
# 使用 ${}
echo ${mediocre}
# 或者是无边界写法
echo $mediocre
# 函数
functionName(){
echo "这是一个方法"
}
# case
sh ./bash.sh 男
case "$1" in "男")
echo "男孩"
;;
"女")
echo "女孩"
esac
上次更新: 2024/11/05, 08:29:31