风流不在谈锋胜,袖手无言味最长。这篇文章主要讲述Shell中的${},##和%%的使用简单介绍相关的知识,希望能为你提供帮助。
【Shell中的${},##和%%的使用简单介绍】使用$来调用变量加##和%%这两个取出不一样的值
我们可以是$变量名和$变量名来调用定义的变量,这两个都可以调用变量,$变量名这个可以截取变量的一部分,而$后面加变量名这个没办法这样。
在这里我们定义一个变量为:
root@ubuntu:~# HTTPD_URL="https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar.gz"
root@ubuntu:~# echo $HTTPD_URL#*/
/mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar.gz
root@ubuntu:~# echo $HTTPD_URL##*/
httpd-2.4.53.tar.gz
root@ubuntu:~# echo $HTTPD_URL#*.
tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar.gz
root@ubuntu:~# echo $HTTPD_URL##*.
gz
root@ubuntu:~# echo $HTTPD_URL%/*
https://mirrors.tuna.tsinghua.edu.cn/apache/httpd
root@ubuntu:~# echo $HTTPD_URL%%/*
https:
root@ubuntu:~# echo $HTTPD_URL%.*
https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar
root@ubuntu:~# echo $HTTPD_URL%%.*
https://mirrors
$HTTPD_URL#*/:删掉第一个/ 及其左边的字符串:/mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar.gz
$HTTPD_URL##*/:删掉最后一个/及其左边的字符串:httpd-2.4.53.tar.gz
$HTTPD_URL#*.:删掉第一个.及其左边的字符串:tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar.gz
$HTTPD_URL##*.:删掉最后一个.及其左边的字符串:gz
$HTTPD_URL%/*:删掉最后一个 /及其右边的字符串:https://mirrors.tuna.tsinghua.edu.cn/apache/httpd
$HTTPD_URL%%/*:删掉第一个/及其右边的字符串:https:
$HTTPD_URL%.*:删掉最后一个 .及其右边的字符串:https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.53.tar
$HTTPD_URL%%.*:删掉第一个 .及其右边的字符串:https://mirrors
#是去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配
也可以对变量值里的字符串作替换:
file=/test1/test2/test3/test.txt
$file/test/user:将第一个dir 替换为/user1/test2/test3/test.txt
$file//test/user:将全部dir 替换为/user1/user2/user3/user.txt
也可以查看变量值的长度:
$#变量名
推荐阅读
- Spring Framework RCE CVE-2022-22965漏洞学习
- Linux 内核进程优先级与调度策略 ② ( 获取调度策略对应的进程优先级函数 | sched_get_priority_max 函数 | sched_get_priority_min 函数 )
- 线上k8s集群利用服务拓扑流量路由策略来设置定向流量()
- [wgcloud-agent]2022/04/08 19:57:37 hostUtil.go:99: GetHostTemperatures err( 发生意外。 (拒绝访问 ))
- 开发环境Ubuntu 安装 Visual Studio Code 开发环境 ( 下载 Visual Studio Code 安装器 | Ubuntu 安装 deb 包 )
- DolphinDB 函数化编程案例教程
- 用户组管理及用户权限
- Samba的使用教程
- 开发环境Ubuntu 中使用 VSCode 开发 C/C++ ⑤ ( tasks.json 中的 args 数组配置分析 | 编译并执行 C++ 程序 )