Shell脚本中的弱治简写

1. 退出状态码检查

$? -eq 0:检查上一条命令是否成功。
$? -ne 0:检查上一条命令是否失败。

示例
if [ $? -eq 0 ]; then
    echo "命令成功"
fi

2. 命令执行并检查状态

&&:如果上一条命令成功,则执行下一条命令。
||:如果上一条命令失败,则执行下一条命令。

示例
mkdir /tmp/test && echo "目录创建成功"
mkdir /tmp/test || echo "目录创建失败"

3. 变量默认值

${VAR:-default}:如果变量 VAR 未设置或为空,则使用默认值。
${VAR:=default}:如果变量 VAR 未设置或为空,则设置默认值并返回。

示例
echo "用户名:${USER:-guest}"

4. 文件测试

-e:文件或目录是否存在。
-f:是否是普通文件。
-d:是否是目录。
-r:文件是否可读。
-w:文件是否可写。
-x:文件是否可执行。

示例
if [ -f /path/to/file ]; then
    echo "文件存在"
fi

5. 字符串测试

-z:字符串是否为空。
-n:字符串是否非空。
=:字符串是否相等。
!=:字符串是否不相等。

示例
if [ -z "$VAR" ]; then
    echo "变量为空"
fi

6. 算术比较

-eq:等于。
-ne:不等于。
-gt:大于。
-lt:小于。
-ge:大于等于。
-le:小于等于。

示例
if [ $COUNT -gt 10 ]; then
    echo "数量大于 10"
fi

7. 命令替换

$(command):执行命令并返回输出。
`command`:与 $(command) 相同,但推荐使用 $(command),因为它更易读且支持嵌套。

示例
DATE=$(date)
echo "当前时间:$DATE"

8. 数组操作

${ARRAY[@]}:获取数组的所有元素。
${#ARRAY[@]}:获取数组的长度。
${ARRAY[0]}:获取数组的第一个元素。

示例
FRUITS=("apple" "banana" "cherry")
echo "第一个水果:${FRUITS[0]}"

9. 循环简写

for i in {1..5}:循环 1 到 5。
for i in $(seq 1 5):与 {1..5} 相同,但更灵活。

示例
for i in {1..5}; do
    echo "数字:$i"
done

10. 条件简写

[ ]:测试条件(等同于 test 命令)。
[[ ]]:更强大的条件测试,支持逻辑运算符和模式匹配。

示例
if [[ "$VAR" == "value" ]]; then
    echo "变量等于 value"
fi

11. 逻辑运算符

&&:逻辑与。
||:逻辑或。
!:逻辑非。

示例
if [ "$VAR1" = "value1" ] && [ "$VAR2" = "value2" ]; then
    echo "条件满足"
fi

12. 函数简写

function_name() { ... }:定义函数。

示例
greet() {
    echo "Hello, $1!"
}
greet "World"

13. 输入重定向

<:从文件读取输入。
<<:从 Here Document 读取输入。

示例
cat < /path/to/file

14. 输出重定向

>:将输出重定向到文件(覆盖)。
>>:将输出重定向到文件(追加)。

示例
echo "Hello" > /path/to/file

15. 后台执行

&:将命令放到后台执行。

示例
sleep 10 &

总结

Shell 脚本中有许多简写语法,我个人感觉大部分都比较弱治,所以就写这么一篇博客。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值