以下的内容基本从Shell13问中提取.
1. 截断功能
${file#*/}: 拿掉第一条/及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}: 拿掉最后一条/及其左边的字符串:my.file.txt
${file#*.}: 拿掉第一个.及其左边的字符串:file.txt
${file##*.}: 拿掉最后一个.及其左边的字符串:txt
${file%/*}: 拿掉最后条/及其右边的字符串:/dir1/dir2/dir3
${file%%/*}: 拿掉第一条/及其右边的字符串:(空值)
${file%.*}: 拿掉最后一个.及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}: 拿掉第一个.及其右边的字符串:/dir1/dir2/dir3/my
记忆的方法为:
[list]#是去掉左边, ##最后一个
%是去掉右边, %%第一个
2. 字符串提取
单一符号是最小匹配﹔两个符号是最大匹配。
${file:0:5}:提取最左边的 5 个字节:/dir1
${file:5:5}:提取第 5 个字节右边的连续 5 个字节:/dir2
3. 字符串替换
${file/dir/path}:将第一个 dir 提换为 path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:将全部 dir 提换为 path:/path1/path2/path3/my.file.txt
4. 针对不同的变量状态赋值(没设定、空值、非空值):
${file-my.file.txt}: 若$file没有设定,则使用my.file.txt作返回值。(空值及非空值时不作处理)
${file:-my.file.txt}:若$file没有设定或为空值,则使用my.file.txt作返回值。(非空值时不作处理)
${file+my.file.txt}: 若$file设为空值或非空值,均使用my.file.txt作返回值。(没设定时不作处理)
${file:+my.file.txt}:若$file为非空值,则使用my.file.txt作返回值。(没设定及空值时不作处理)
${file=my.file.txt}: 若$file没设定,则使用my.file.txt作返回值,同时将$file 赋值为 my.file.txt。(空值及非空值时不作处理)
${file:=my.file.txt}:若$file没设定或为空值,则使用my.file.txt作返回值,同时将 $file 赋值为 my.file.txt。(非空值时不作处理)
${file?my.file.txt}: 若$file没设定,则将my.file.txt输出至 STDERR。(空值及非空值时不作处理)
${file:?my.file.txt}:若$file没设定或为空值,则将my.file.txt输出至STDERR。(非空值时不作处理)
注意:
":+"的情况是不包含空值的.
":-", ":="等只要有号就是包含空值(null).
5. 变量的长度
${#file}
6. 数组运算
A=(a b c def)
${A[@]} 或 ${A[*]} 可得到 a b c def (全部组数)
${A[0]} 可得到 a (第一个组数),${A[1]} 则为第二个组数...
${#A[@]} 或 ${#A[*]} 可得到 4 (全部组数数量)
${#A[0]} 可得到 1 (即第一个组数(a)的长度),${#A[3]} 可得到 3 (第四个组数(def)的长度)
shell中${}的用法
时间: 2024-10-10 23:06:33
shell中${}的用法的相关文章
HBase基本概念和hbase shell常用命令用法
1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 2. HBase的表结构 HBase以表的形式存储数据.表有行和列组成.列划分为若干个列族/列簇(column family). Row Key colu
shell相关的用法
shell相关的用法 if用法 -q不输出结果,只做判断 [[email protected] tmp]# if grep -q '^daixuan:' /etc/passwd; then echo "daixuan text" ;fi ,当/etcpasswd下包含daixuan,就输出daixuan test case用法 [[email protected] tmp]# vim case.sh #/bin/bash read -p "Please input a num
adb shell am 的用法
adb shell am 使用此命令可以从cmd控制台启动 activity, services:发送 broadcast等等: 1 C:\Users\Administrator>adb shell am 2 usage: am [subcommand] [options] 3 4 start an Activity: am start [-D] [-W] <INTENT> 5 -D: enable debugging 6 -W: wait for launch to complete
adb shell input的用法
最近做LCD模组的gamma自动化测试过程中用到了input命令,于是也来了解一下该命令的使用.在运行adb shell 后输入input后运行就会输出input的使用方法,如下: Usage: input [<source>] <command> [<arg>...] The sources are: trackball joystick touchnavigation mouse keyboard gamepad touchpad dpad stylus touch
【转载】HBase基本概念和hbase shell常用命令用法
1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务. 2. HBase的表结构 HBase以表的形式存储数据.表有行和列组成.列划分为若干个列族/列簇(column family). Row Key colu
【shell】Linux shell中括号的用法
Linux shell中括号的用法 概述 本文主要介绍Linux中括号的用法,主要包含判断文件和变量. **注意事项**:中括号两边必须有空格. 使用中括号会涉及到的知识 &&.|| 在本文对文件或者变量做判断的时候,可能会多次使用到&&和||这两个符号,所以在我们进入中括号的学习之前首先了解一下这两个符号的作用. &&:并 --> 两真才为真,如果有两个条件,第一个为真,那么肯定会判断第二个条件:如果第一个条件为假,那么第二个条件将不会判断.(第一个
shell ---- ` ,$(),[[...]],[...],eval的用法
一.反引号[ `` ]和 $() 的区别与联系 '$'(参数替换)和'`'(命令替换) 反引号[ `` ]和 $() 的用法是一样的.在执行一条命令时,会先将其中的 ``,或者是$() 中的语句当作命令执行一遍,再将结果加入到原命令中重新执行 例如: echo `ls` #会先执行 ls 得到xx.sh等,再替换原命令为: echo xx.sh 最后执行结果为: xx.sh 平时我们遇到的把一堆命令的执行结果输出到一个变量中,需要用这个命令
什么是shell,shell基础由浅入深,常用的shell命令、用法、技巧
Shell:可以批量处理.自动化完成一系列维护任务,大大减轻管理员的负担!Shell是一个特殊的应用程序,介于操作系统内核与用户之间,充当了一个"命令解释器"的角色.负责接收用户输入的操作指令,并进行解释,将需要执行的操作传递给内核执行,并输出执行结果. 如何查看系统所支持的Shell(默认为Bash): Shell脚本格式:由脚本声明.脚本注释.可执行语句构成: Shell脚本执行方式:只要将平时使用的各种Linux命令按顺序保存到一个文本文件,然后添加可执行权限,这个文件就成为
HBase Shell的基本用法
hbase提供了一个shell的终端给用户交互.使用命令hbaseshell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来演示hbase的用法. name grad course math art Tom 5 97 87 Jim 4 89 80 这里grad对于表来说是一个只有它自己的列族,course对于表来说是一个有两个列的列族,这个列族由两个列组成math和art,当然我们可以根据我们的需要在course中建立更多的列族,如computer,phy
Shell之date用法
#man date可以看到date的help文件 #date 获取当前时间 #date -d "-1week" +%Y%m%d 获取上周日期(day,month,year,hour) #date--date="-24 hour" +%Y%m%d 同上 date_now=`date+%s` shell脚本里面赋给变量值 %% 输出%符号 %a 当前域的星期缩写 (Sun..Sat) %A 当前域的星期全写 (Sunday..Saturday) %b 当前域的月份缩写(