首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

可以用bash函数检测参数末尾的空格吗?

可以使用bash函数检测参数末尾的空格。在bash中,可以使用字符串操作符和条件判断语句来实现这个功能。

下面是一个示例的bash函数,用于检测参数末尾的空格:

代码语言:txt
复制
function check_trailing_space() {
    local param="$1"
    local trimmed_param="${param%"${param##*[![:space:]]}"}"

    if [[ "$trimmed_param" != "$param" ]]; then
        echo "参数末尾包含空格"
    else
        echo "参数末尾不包含空格"
    fi
}

这个函数接受一个参数,并将其赋值给param变量。然后,使用字符串操作符${param%"${param##*[![:space:]]}"}来去除参数末尾的空格,并将结果赋值给trimmed_param变量。

接下来,使用条件判断语句[[ "$trimmed_param" != "$param" ]]来比较去除空格后的参数和原始参数是否相等。如果不相等,则说明参数末尾包含空格;否则,参数末尾不包含空格。

你可以调用这个函数并传入参数来检测参数末尾的空格。例如:

代码语言:txt
复制
check_trailing_space "Hello World "  # 参数末尾包含空格
check_trailing_space "Hello World"   # 参数末尾不包含空格

请注意,这只是一个简单的示例函数,用于演示如何检测参数末尾的空格。在实际开发中,你可能需要根据具体需求进行适当的修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux命令(二)——shell编程

* 参数比格式控制符(%)多时,格式控制符可以重用,可以将所有参数都转换。 * arguments 使用空格分隔,不用逗号。...$# 添加到Shell参数个数 $0 Shell本身文件名 $1~$n 添加到Shell参数值。$1是第1参数、$2是第2参数…。...字符串和数组 字符串 字符串是shell编程中最常用最有用数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。...如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数计算结果,脚本在需要时候访问这个变量来获得函数返回值。 #!.../bin/bash function hello(){ echo "我被调用了"; return 666; } str= hello echo $str 函数参数

3.8K20

Shell 编程入门 (转载非原创)

二、字符串 字符串是最常用最有用数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。...五、函数 1、 函数定义 Shell 中可以用户定义函数,然后在 shell 脚本中可以随便调用。 下面的例子定义了一个函数并进行调用: #!...函数脚本执行结果: -----函数开始执行----- 这是我第一个 shell 函数! -----函数执行完毕----- 2、 函数参数 在 shell 中,调用函数时可以向其传递参数。...在函数体内部,通过 $n 形式来获取参数值,例如,$1 表示第一个参数,$2 表示第二个参数... 带参数函数示例: #!...另外,还有几个特殊字符用来处理参数: $# 传递到脚本或函数参数个数 $* 以一个单字符串显示所有向脚本传递参数 $$ 脚本运行的当前进程ID号 $!

1.7K21

每日一问:c++类成员函数,能作为线程参数

问:类成员函数可以传入线程参数? 回答: 如果c语言全局函数,可以。 如果是类静态成员函数,可以 如果是类普通成员函数,不可以 为什么?...《深入探索C++对象模型》中提到成员函数时,当成员函数不是静态,虚函数,那么我们有以下结论: (1) &类名::函数名 获取是成员函数实际地址; (2) 对于函数x来讲obj.x()编译器转化后表现为...x(&obj),&obj作为this指针传入; (3) 无法通过强制类型转换在类成员函数指针与其外形几乎一样普通函数指针之间进行有效转换。...所以,要在回调函数中传入一个类普通成员函数时,this指针无处安放使得回调函数比较复杂。 怎么解决?...,该函数参数为void*,返回值为void* FUNC callback = (FUNC)&MyClass::func;//强制转换func()类型 int ret

2.2K30

【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件变量

1 函数快速入门 2 传递参数函数 1.9 数组 1 定义数组 2 读取数组 3 遍历数组 1.10 加载其它文件变量 1 简介 2 练习 1.6 Shell算术运算符 1 简介 Shell...可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配 命令。 case 语句格式如下: case 工作方式如上所示。...1.8 函数使用 1 函数快速入门 格式 可以带 function fun() 定义,也可以直接 fun() 定义 , 不带任何参数。...return 后跟数值 n(0-255) 快速入门 2 传递参数函数 在 Shell 中,调用函数时可以向其传递参数。...在函数体内部,通过 形 式 来 获 取 参 数 值 , 例 如 , 1 表示 第一个参数, $2 表示第二个参数 ...

3.1K30

Shell特殊字符

2.1 特殊变量 序号 符号 作用 示例 1 $0 当前脚本名称 2 $# 传递给脚本或函数参数个数 3 $* 传递给脚本或函数所有参数 4 $@ 传递给脚本或函数所有参数。...上个命令退出状态,或函数返回值。 6 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在进程ID。 7 $n 传递给脚本或函数参数。n 是一个数字,表示第几个参数。...关于上面的特殊变量几个知识点: (1)$@与$*区别? $@和$*都表示脚本或者函数传入参数,不被双引号”“包含时,都以$1 $2 … $n形式输出所有参数。...这种模式时,shell在var中提取第num个字符到末尾所有字符。...如:(2)用于参数替代中,表示首字母小写,如果是两个逗号,则表示全部小写,注意,这个特性在bash version 4时候被添加。 示例见下文。

5.1K10

快速学习Bash

SHELL变量存储了当前使用Shell信息你可以在bash中用sh命令启动sh,并可以用exit命令从中退出。 命令选项和参数 我们已经看到,一行命令里还可以包含着选项和参数。...当一整个参数信息中包含了空格时,我们需要用引号把参数包裹起来,以便Shell能识别出这是一个整体。 所谓选项和参数提供给命令附加信息。因此,命令最终会拿这些字符串做什么,是由命令自己决定。...根据Bash语法,赋值符号“=”前后不留空格。赋值号右边文本内容会存入赋值号左边变量。 如果文本中包含空格,那么你可以用单引号或双引号来包裹文本。...在脚本末尾,我们可以用exit命令来设置脚本返回代码。我们修改hello_world.bash: #!...像脚本一样,函数调用时还可以携带参数。在函数内部,我们同样可以用$1、$2这种形式变量来使用参数: #!

1.7K60

快速学习Bash

SHELL变量存储了当前使用Shell信息你可以在bash中用sh命令启动sh,并可以用exit命令从中退出。 命令选项和参数 我们已经看到,一行命令里还可以包含着选项和参数。...当一整个参数信息中包含了空格时,我们需要用引号把参数包裹起来,以便Shell能识别出这是一个整体。 所谓选项和参数提供给命令附加信息。因此,命令最终会拿这些字符串做什么,是由命令自己决定。...根据Bash语法,赋值符号“=”前后不留空格。赋值号右边文本内容会存入赋值号左边变量。 如果文本中包含空格,那么你可以用单引号或双引号来包裹文本。...在脚本末尾,我们可以用exit命令来设置脚本返回代码。我们修改hello_world.bash: #!...像脚本一样,函数调用时还可以携带参数。在函数内部,我们同样可以用$1、$2这种形式变量来使用参数: #!

1.2K30

快速学习Bash

SHELL变量存储了当前使用Shell信息你可以在bash中用sh命令启动sh,并可以用exit命令从中退出。 命令选项和参数 我们已经看到,一行命令里还可以包含着选项和参数。...当一整个参数信息中包含了空格时,我们需要用引号把参数包裹起来,以便Shell能识别出这是一个整体。 所谓选项和参数提供给命令附加信息。因此,命令最终会拿这些字符串做什么,是由命令自己决定。...根据Bash语法,赋值符号“=”前后不留空格。赋值号右边文本内容会存入赋值号左边变量。 如果文本中包含空格,那么你可以用单引号或双引号来包裹文本。...在脚本末尾,我们可以用exit命令来设置脚本返回代码。我们修改hello_world.bash: #!...像脚本一样,函数调用时还可以携带参数。在函数内部,我们同样可以用$1、$2这种形式变量来使用参数: #!

1.2K20

Go 函数 Map 型参数,会发生扩容后指向不同底层内存事儿

最近跟同事做项目,由于要在函数里向一个 Map 中写入不少数据,这个 Map 是作为参数传到函数。...他问了我一个问题: “如果把 Map 作为函数参数传递,会不会像用 Slice 做参数时一样诡异,是不是一定要把 Map 当成返回值返回才能让函数外部 Map 变量看到这里添加数据”?...我们把切片赋给了变量 s,然后用变量 s 作为参数传给了函数 reverse 进行处理,函数 reverse 在反转切片元素之前还给原来切片先追加了几个值,这就导致了切片发生扩容。...下面这个图,展示了这个函数内外切片指向底层数组发生变化过程。 那么如果用 Map 当函数参数时,有这档子破事儿?...聊远了,下面说下答案哈,如果用 Map 当函数参数,Map发生扩容后,函数内外Map变量指向底层内存仍是一致。这是为什么呢?

87320

【知识总结】Shell脚本编程入门

printf 使用引用文本或空格分隔参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串宽度、左右对齐方式等。...可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配命令。.../bin/bash let a=5+4 let b=9-3 echo $a $b 以上实例执行结果为: 9 6 2.10 Shell 函数 linux shell 可以用户定义函数,然后在shell...调用函数仅使用其函数名即可。 函数参数 在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 1表示第一个参数,$2表示第二个参数... 带参数函数示例: #!...另外,还有几个特殊字符用来处理参数参数处理 说明 $# 传递到脚本或函数参数个数 $* 以一个单字符串显示所有向脚本传递参数 $$ 脚本运行的当前进程ID号 $!

3K20

Linux Shell编程入门

一般Shell变量名只能包含数字、字母和下划线,因为某些包含其他字符变量有特殊含义,这样变量被称为特殊变量。 特殊变量列表 变量 含义$0当前脚本文件名$n传递给脚本或函数参数。...n 是一个数字,表示第几个参数。例如,第一个参数是1,第二个参数是2。$#传递给脚本或函数参数个数。$*传递给脚本或函数所有参数。$@传递给脚本或函数所有参数。...message}如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用检测变量 var 是否可以被正常赋值。...表达式和运算符之间要有空格,例如 2+2 是不对,必须写成 2 + 2,这与我们熟悉大多数编程语言不一样 关系运算符列表 运算符 说明 举例-eq检测两个数是否相等,相等返回 true。...6、Shell数组 bash支持一维数组(不支持多维数组),并且没有限定数组大小。类似与C语言,数组下标由0开始。 在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。

3K10

Shell编程基础

bash关键字(可用help命令查看保留关键字) 需要给变量赋值时,可以这么写: 变量名=值 要取用一个变量值,只需在变量名前面加一个$ ( 注意: 给变量赋值时候,不能在"="两边留空格...注意:前两种方式在bash下有效,在sh下会出错。 let表示数学运算,expr用于整数值运算,每一项用空格隔开,$[]将中括号内表达式作为数学运算先计算结果再输出。...Here document以 << 开头,后面接上一个字符串,这个字符串还必须出现在here document末尾。...该函数使用wc –c计算字符个数,然后使用cut命令取出末尾一个字符。Chop函数功能则是移除最后一个字符。 文件循环拷贝 你可能有这样需求并一直都这么做:将所有发出邮件保存到一个文件中。...在检测到用户提供了一个文件名之后,首先进行一个9到1循环;文件名.9重命名为文件名.10,文件名.8重命名为文件名. 9……等等。

81130

Shell脚本学习2

同算数运算符`==` -ne 检测两个数是否相等,不相等返回 true -gt 检测左边数是否大于右边,如果是,则返回 true。 -lt 检测左边数是否小于右边,如果是,则返回 true。...-ge 检测左边数是否大等于右边,如果是,则返回 true。 -le 检测左边数是否小于等于右边,如果是,则返回 true。 关系运算符只支持数字,不支持字符串,除非字符串值是数字。 #!...(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。.../bin/bash/ str='i love you' echo ${str:1} # 从第1个截取到末尾。注意从0开始。 echo ${str:2:2} # 从第2个截取2个。.../bin/bash/ str="i love you" echo `expr index "$str" l` echo `expr index "$str" you` #最后一个参数是字符集,返回最靠前字符

16920

Shell基础入门

等号两侧不能有空格。 在bash环境中,变量默认类型都是字符串,无法直接进行数值运算。 变量值如果有空格,必须使用双引号括起来。 不能使用Shell关键字作为变量名称。...注意: Bash Shell 只支持一维数组,不支持多维数组。 数组定义 语法 在Shell中,用括号 () 来表示数组,数组元素之间用空格来分割。.../bin/bash # 使用read命令读取数据,要有提示信息"您确定要删除数据(请输入y/n)" 并且设置读取一个字符 read -p "您确定要删除数据(请输入y/n): " -n 1 char...可用来声明变量并设置变量属性,也可用来显示shell函数。若不加上任何参数,则会显示全部shell变量与函数(与执行set指令效果相同)。...这就好比python中字典,java中map declare -A 关联数组变量名=([key1]=值1 [key2]=值2 ...) declare 也可以用于定义普通索引数组 -a:参数创建普通或索引数组

2.4K31
领券