Linux Shell参数替换

Linux Shell参数替换

2013-06-03 10:01 by 轩脉刃, 1816 阅读, 0 评论, 收藏, 编辑

Bash中的符号的作用是参数替换,将参数名替换为参数所代表的值。对于

来说,大括号是可选的,即A和

{A}代表同一个参数。

${}带冒号的有下面几种表达式:

${parameter:-word}

如果parameter为null或者未设置,整个参数替换表达式值为word

${parameter:=word}

如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word

${parameter:?word}

如果parameter为null或者未设置,则打印出错误信息。否则,整个参数替换表达式值为$parameter

${parameter:+word}

如果parameter不为null或者未设置,则整个参数替换表达式值为word

${parameter:offset}

${parameter:offset:length}

parameter的值的子字符串。

可以理解下下面这几个例子:

${}带!有下面几种表达式:

${!prefix*}

${[email protected]}

将带有前缀为prefix的参数名打印出来

${!name[@]}

${!name[*]}

这个是针对name数组的,打印出来name数组有哪些下标

可以理解下下面这几个例子:

${}带正则匹配的几种表达式:

${parameter#word}

${parameter##word}

从头开始扫描word,将匹配word正则表达的字符过滤掉

#为最短匹配,##为最长匹配

${parameter%word}

${parameter%%word}

从尾开始扫描word,将匹配word正则表达式的字符过滤掉

%为最短匹配,%%为最长匹配

可以理解下面这几个例子:

${parameter/pattern/string}

${parameter//pattern/string}

将parameter对应值的pattern字符串替换成为string字符串

/表示只替换一次

//表示全部替换

可以理解下面这几个例子:

时间: 2024-10-28 02:03:39

Linux Shell参数替换的相关文章

Linux Shell参数扩展(Parameter Expansion)

本文主要参考:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02 其他资料:http://www.ibm.com/developerworks/cn/linux/l-bash-parameters.html 参数扩展的表示形式为:${expression}.expression包括各种字符直到匹配上'}'.当出现以下情况时候'}'不会被检查来匹配: 1)在转义字符\之后,如\{

Linux - Shell - 参数获取

概述 参数 背景 复习一下 shell 脚本的参数获取 场景 os centos7 1. 参数: 基础 概述 简单描述 参数 1. 获取参数 获取 第一个 参数 获取参数 使用 ${num} 获取参数 ${1} 获取 第一个参数 代码 #!/bin/bash var1=${1} echo ${var1} 其他 可以尝试 ${2}, ${3} 等获取后续参数 默认情况下, 如果参数不足, echo 不会报错, 其他命令, 需要验证 2. 获取多个参数 问题1: 获取多个参数 一个一个获取参数, 如

linux shell脚本常用语句

linux shell 指令 诸如-d, -f, -e之类的判断表达式: 文件比较运算符-e filename  如果 filename存在,则为真  [ -e /var/log/syslog ]-d filename  如果 filename为目录,则为真  [ -d /tmp/mydir ]-f filename  如果 filename为常规文件,则为真  [ -f /usr/bin/grep ]-L filename  如果 filename为符号链接,则为真  [ -L /usr/bi

linux shell 脚本获取和替换文件中特定内容

1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) 1 timeout 1 2 default 0 3 4 title live 5 find --set-root /casper/vmlinuz 6 kernel /casper/vmlinuz boot=casper ignore_uuid showmounts ip=eth0,10.0.66.66,255.255.240.0,10.0.64.3 7

linux shell 字符串操作(长度,查找,替换,匹配)详解

linux shell 字符串操作(长度,查找,替换,匹配)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${va

linux shell if 参数

linux shell if 参数 shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定的文件或目录存在时返回真 -f 当file存在并且是正规文件时返回真 -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真 -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效 -k 当由pathname指定

linux 给文件替换字符串/替换内容/替换某行 (shell,sed)

本文是要讲linux 不打开文档/文件的情况下,替换文本内容.打开文档,在文档/文件内替换内容的,可以用vim,可参考这篇文章vim 替换文本 . 话题相关#linux 文件替换字符串#sed 字符串替换#shell 文件替换某行#linux 替换指定行内容#linux 替换某行 linux一般用sed来替换文本到指定行. 基本语法 s (substitute)为查找替换命令 # 在输出或打印中,替换字符串.并不改变原文件内容sed '作用范围s/替换查找目标/替换成为/替换目标option'

linux shell基础语法

1.第一个Shell脚本 打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash echo "Hello World !" "#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell.echo命令用于向窗口输出文本. 运行Shell脚本有两种方法. 1.1作为可执行程序 将上面的代码保存为t

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执