shell misc

. shell逻辑表达式

#!/bin/bash

FILE_BASED_ENCRYPTION="true"

if [ "$FILE_BASED_ENCRYPTION" == "true" ]
then
echo "if: first one" || echo "if: second one"
else
echo "else case"
fi

echo "if: first one"执行的返回值是0(为真),所以||后面的echo "if: second one"不会执行了

 

shell中#*,##*,#*,##*,% *,%% *的含义及用法

介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。


假设定义了一个变量为:
代码如下: file=/dir1/dir2/dir3/my.file.txt


可以用${ }分别替换得到不同的值:
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
${file##*.}:删掉最后一个 . 及其左边的字符串:txt
${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my


记忆的方法为:
# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配

比如$TEST_VAR为:"TEST VALUE := 1001"

${TEST_VAR#*=}的值将为1001

${TEST_VAR#*:=}的值也将为1001

from: https://blog.csdn.net/weixin_42615308/article/details/90763465

 

posted @   aspirs  阅读(61)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2020-03-29 内存管理(七)特定于PTE的信息
2020-03-29 linux page table
点击右上角即可分享
微信分享提示