`
luzl
  • 浏览: 573654 次
  • 性别: 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-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,恩,舒服多了。。。

    Linux报告 

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

    ksh-20120801-142.el7.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`:...

    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 的前期准备工作。接...

    bash语言编程说明

    除此之外,在传统的 UNIX 系统中,也有多种 shell 如 tcsh、csh、ash、bsh 和 ksh 等。这些 shell 的 script 大致具有相似性,学会了一种 shell 后,其他的 shell 就能很快上手。大多数情况下,一个 shell script ...

    ksh-20120801-254.el8.x86_64.rpm

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

    linux命令详解之useradd命令使用方法.doc

    这将把用户`sam`的Shell更改为`/bin/ksh`,主目录改为`/home/z`,并将其主组设置为`developer`。 4. **用户口令管理** `passwd`命令用于管理用户口令。普通用户可以使用`passwd`修改自己的口令,而超级用户(root...

Global site tag (gtag.js) - Google Analytics