`
luzl
  • 浏览: 575465 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

变量操作 (ksh/bash 仅有)--截取字符串

    博客分类:
  • Unix
阅读更多
很奇怪的一点这些命令使用的时候竟然都没有$符号,所以感觉很怪的:
${#var}
    返回var这个变量的长度
${var%pattern}
    removes the shortest suffix of $var patching pattern
    从后面开始去掉最短正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath%\/*.*}

返回空行 /data/public/project/trials/set1

${var%%pattern}
    removes the longest suffix of $var patching pattern
    从后面开始去掉最长正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath%%\/*.*}

返回空行

${var#pattern}
    removes the shortest prefix of $var patching pattern
    从前面开始去掉最短正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath#/*/}

返回public/project/trials/set1/datafile.dat

${var##pattern}
    removes the longest prefix of $var patching pattern
    从前面开始去掉最长正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath##*.}

返回dat

最后补充一点,在shell脚本文件中使用时,你不必使用``命令,直接赋值就是了:
name=20081104.key
ext=`${name##*.}`

就会报错,说key不能执行什么的,当然,扩展名key也没有赋值给ext
这样就对了
name=20081104.key
ext=${name##*.}








分享到:
评论

相关推荐

    OS + Linux Shell bash / sh / ksh / csh / tcsh / adb shell

    - **变量**:在Shell脚本中,用于存储数据的容器,可以是字符串、数字或其他类型。 - **流程控制**:包括条件语句(if...else)、循环(for、while)和case结构,用于根据特定条件执行不同的命令序列。 - **函数**:...

    ksh-20100621-19.el6.x86_64.rpm

    ksh-20100621-19.el6.x86_64.rpm

    aix5.3 安装gmake、gcc,以便于在aix环境下支持c++语言编译,以及bash

    3. 如果你希望bash成为默认shell,可以使用`chsh`命令更改用户登录shell:`chsh -s /bin/bash your_username`。 在完成这些步骤后,AIX 5.3系统将具备C++编译和bash shell的功能,可以支持开发和执行C++程序。记得...

    ksh-20120801-142.el7.x86_64.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    ksh-20120801-22.el7_1.2.x86_64.rpm

    ksh-20120801-22.el7_1.2.x86_64.rpm,ksh-20120801-22.el7_1.2.x86_64.rpm

    bash-3.0-1.aix5.1.ppc.rpm

    AIX默认使用的Ksh,没有自动补全功能。这对于像我这样用惯了Linux的Bash的人,简直受不了。赶紧换回bash,恩,舒服多了。。。

    ksh-20100621-6.el6.x86_64

    在提供的压缩包文件列表中,我们看到有一个名为“ksh-20100621-6.el6.x86_641.rpm”的文件,这就是我们需要的RPM包。RPM(Red Hat Package Manager)是Linux下广泛使用的软件包管理工具,它可以方便地进行软件的安装...

    Linux报告 

    /bin/bash`。 3. **添加注释**:在脚本中加入必要的注释,以提高脚本的可读性和维护性。 4. **赋予执行权限**:使用`chmod`命令给脚本添加执行权限。 ```bash chmod u+x 脚本功能.sh ``` 5. **运行脚本**:可以...

    ksh-20120801-254.el8.x86_64.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    pdksh-5.2.14-30.x86_64.rpm

    - **语法兼容性**:PDKSH保持了ksh93的大部分语法,包括数组变量、流程控制结构和过程子程序。 - **命令替换**:支持命令替换,允许用户在执行命令时将命令的输出用作输入。 - **作业控制**:允许用户在后台运行...

    ksh-20100621-6.el6.x86_64.rpm

    ksh-20100621-6.el6.x86_64.rpm

    Ubuntu9.04安装Oracle10G.doc

    # useradd -g oinstall -G dba -p password -d /home/oracledba -s /bin/bash oracledba # passwd -l oracledba Password changed. ``` 6. **设置用户主目录的所有权:** ```bash # mkdir /home/oracledba # ...

    32位的Ubuntu下Oracle的安装.pdf

    sudo useradd -g oinstall -G dba -d /opt/oracle -s /bin/bash oracle sudo passwd oracle 检查系统变量 在安装 Oracle 之前,需要检查系统变量,以便安装配置工具时不报错。使用以下命令即可检查系统变量: /...

    shell脚本.docx

    - 单引号内的任何字符都会原样输出,单引号字符串中的变量无效。 - 双引号内可以包含变量,支持转义字符。 #### 六、Shell脚本参数传递 1. **参数格式** - `$n`:`n`代表执行脚本时传递的参数位置。 - `$0`:...

    ksh-20120801-144.el7-9.x64-86.rpm.tar.gz

    1、文件内容:ksh-20120801-144.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ksh-20120801-144.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 ...

    linux5.4下安装oracle11g.docx

    if [ "$SHELL" = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi ``` 通过以上步骤,我们已经完成了在 Linux 5.4 系统上安装 Oracle 11g 的前期准备工作。接...

Global site tag (gtag.js) - Google Analytics