编写一个shell脚本,想用从一个绝对路径得到一个文件名。
直接使用basename在脚本中,莫名地报了一个permission denied的错误。
就干脆想想如何通过字符串操作来解决。搜索整理了一下:
${var#pattern} 是要将变量值左边的最短 pattern 拿掉。
${var##pattern} 是要将变量值左边的最长 pattern 拿掉。
${var%pattern} 是要将变量值右边的最短 pattern 拿掉。
${var%%pattern} 是要将变量值右边的最长 pattern 拿掉。
${var%/*} 就是将最后一个 / 及其右边的内容拿掉。
${var##*/} 就是将最后一个 / 及其左边的内容拿掉。由此可以得到文件名。
${var/a/b}把var中的'a'替换为'b'
举例:
pathname=/home/allen/shell/test.tar.gz
echo ${pathname}
echo ${pathname##/*/}
echo ${pathname#/*/}
echo ${pathname%.*}
echo ${pathname%%.*}
echo ${pathname/test/allen}
输出为
/home/allen/shell/test.tar.gz
test.tar.gz
allen/shell/test.tar.gz
/home/allen/shell/test.tar
/home/allen/shell/test
/home/allen/shell/allen.tar.gz
分享到:
相关推荐
1. **安装与运行**:解压"sqlite-shell-win32-x86-3080200.zip"到任意目录,然后找到sqlite3.exe,双击运行或在命令行中输入其路径启动。 2. **连接数据库**:在命令行中,输入`.open 数据库文件名`,例如`.open ...
Linux运维-运维系统服务04-Shell脚本d2-shell基础知识-10环境变量分类.mp4
10.4.1 Shell基础-Bash变量-用户自定义变量.mp4 10.4.2 Shell基础-Bash变量-环境变量.mp4 10.4.3 Shell基础-Bash变量-位置参数变量.mp4 10.4.4 Shell基础-Bash变量-预定义变量.mp4 10.5.1 Shell基础-Bash变量-...
Linux运维-3.Shell编程-11shell基础-110环境变量1.avi
Linux运维-3.Shell编程-11shell基础-121环境变量配置文件1.avi
Linux运维-3.Shell编程-11shell基础-112环境变量3.avi
Linux运维-3.Shell编程-11shell基础-111环境变量2.avi
Linux运维-运维系统服务04-Shell脚本d2-shell基础知识-11系统内置变量1.mp4
在标题提及的"mysql-shell-8.0.30-linux-glibc2.12-x86-64bit.tar.gz"文件中,我们获取的是适用于Linux系统(glibc2.12版本)的64位MySQL Shell版本8.0.30,这是MySQL数据库8.0系列的一个重要组件。 MySQL 8.0相较...
Linux运维-运维系统服务04-Shell脚本d7-Shell三剑客(下)-08awk变量定义和打印.mp4
"sqlite-shell-win32-x86-3080403" 是SQLite的Windows 32位版本的命令行界面工具,适用于x86架构的系统。这个版本号3080403表示该软件的特定更新或修订版。 SQLite Shell是用于与SQLite数据库进行交互的命令行工具...
**位置变量**是用于接收命令行参数的特殊变量,如`$1`,`$2`等,分别代表第一个、第二个参数,最多可以有9个位置参数。如果参数数量超过9个,可以使用`$*`或`$@`来表示所有参数,两者之间有些微妙的差异。 **特定...
### Linux超级基础系列——Shell变量(本地变量与环境变量) #### 一、Shell与Shell变量简介 在Linux操作系统中,Shell是一种用户与操作系统交互的重要工具,它可以解释用户的命令,并将其传递给内核或其他应用...
export 命令用来将 shell 变量导出到当前 shell 环境中,使得变量可以在当前 shell 中生效。 source 命令 在解决方案中,我们使用了 source 命令来使更改生效。source 命令用来读取并执行指定文件中的命令,在这里...
**SHELL编程初学者指南** SHELL编程是UNIX和Linux操作系统中的重要组成部分,它是一种...《UNIX[1].Shell编程24学时教程.pdf》这样的资源会详细讲解这些主题,并提供实际案例供读者练习,是学习SHELL编程的理想材料。
- 子shell可以修改父shell输出的环境变量,但这种修改仅限于子shell内部。 #### bash内置环境变量 Bash中有一些预定义的环境变量,例如: - `$HOME`: 当前用户的家目录路径。 - `$PATH`: 默认的可执行命令搜索...
压缩包中的`shell-run-java-by-ant`可能指的是使用Ant来构建和运行Java项目。Ant是Apache的一个开源项目,它是一个基于XML的构建工具,用于编译、打包、测试Java项目等任务。通过Ant的`<java>`任务,可以在构建脚本...
1. **Unity调用Shell脚本**:使用`System.Diagnostics.Process`类来启动外部进程。 2. **参数传递**:通过`ProcessStartInfo`对象来指定程序路径和参数,使用`-c`选项来运行shell命令。 3. **脚本内容**:确保shell...