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

避免在bash内置函数中扩展*

在 Bash 内置函数中,扩展 * 可能会导致意外的行为。为了避免这种情况,可以使用双引号将参数括起来,或者使用其他方法来避免扩展。

以下是一些建议:

  1. 使用双引号:
代码语言:bash
复制
my_function() {
  echo "$*"
}
  1. 使用数组:
代码语言:bash
复制
my_function() {
  local args=("$@")
  echo "${args[@]}"
}
  1. 使用 printf 命令:
代码语言:bash
复制
my_function() {
  printf "%s " "$@"
  echo
}
  1. 使用 set 命令:
代码语言:bash
复制
my_function() {
  set -- "$@"
  echo "$*"
}

这些方法可以确保在 Bash 内置函数中不会扩展 *,从而避免意外的行为。

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

相关·内容

  • 如何在 Bash 编写函数

    例如,以编程方式烤制面包的假想场景,如果你需要更改面团醒发的用时,只要你之前使用函数,那么你只需更改一次用时,或使用变量(示例代码为 SNOOZE)或直接在处理面团的子程序更改用时。... Bash ,无论是在编写的脚本或在独立的文件,定义函数和使用它们一样简单。如果将函数保存到独立的文件。...要创建一个 Bash 函数,请使用关键字 function: function foo { # code here } 这是一个如何在函数中使用参数的例子(有些人为设计,因此可能会更简单): #!...如果没有调用该函数,那么函数只是被定义,并且永远不会运行。 如果你刚接触 Bash,请尝试包含最后一行的情况下执行示例脚本一次,然后注释掉最后一行的情况下再次执行示例脚本。...将通用函数保存在单独的文件还可以节省一些工作,因为它将帮助你建立常用的程序,以便你可以项目间重用它们。看看你的脚本习惯,看是否适合使用函数

    1.8K10

    如何在 Bash 编写函数

    例如,以编程方式烤制面包的假想场景,如果你需要更改面团醒发的用时,只要你之前使用函数,那么你只需更改一次用时,或使用变量(示例代码为 SNOOZE)或直接在处理面团的子程序更改用时。... Bash ,无论是在编写的脚本或在独立的文件,定义函数和使用它们一样简单。如果将函数保存到独立的文件。...要创建一个 Bash 函数,请使用关键字 function: function foo { # code here } 这是一个如何在函数中使用参数的例子(有些人为设计,因此可能会更简单): #!...如果没有调用该函数,那么函数只是被定义,并且永远不会运行。 如果你刚接触 Bash,请尝试包含最后一行的情况下执行示例脚本一次,然后注释掉最后一行的情况下再次执行示例脚本。...将通用函数保存在单独的文件还可以节省一些工作,因为它将帮助你建立常用的程序,以便你可以项目间重用它们。看看你的脚本习惯,看是否适合使用函数

    1.8K10

    bashexport命令作用是什么_bash:no such file or directory

    不幸的是,没有办法将变量export 到父进程(就是调用这个脚本或shell 的进程)....关于export 命令的一个重要的使用就是用在启动文件,启动文件是用来初始化并且 设置环境变量,让用户进程可以存取环境变量 脚本不能export(导出)变量到它的父进程(parent process)...们学的生物一样,一个子进程可以从父进程里继承但不能去影响父进程. 1 WHATEVER=/home/bozo 2 export WHATEVER 3 exit 0 bash...echo WHATEVER bash 可以确定, 回到命令提示符, WHATEVER 变量仍然没有设置....子SHELL(subshell)设置和操作变量 , 然后尝试子 SHELL 的作用范围外使用相同名的变 量将会导致非期望的结果. 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    3.3K20

    Python匿名函数内置高阶函数详解

    为了配合Python办公自动化系列文章,本文带来的是偷学Python第二十四天:Python匿名函数内置高阶函数使用,其他内容将在近期更新完毕,本文目录如下 ?...,让代码更加精简,而且不用考虑命名问题,但是PEP8规范里面是不推荐用lambda这种方式的 内置函数 map( ) map()会根据提供的函数对指定序列做映射,使用方法: map(function...2, 4, 6, 56, 12, 6, 2, 34] print(list(list2)) # [2, 2, 4, 6, 56, 12, 6, 2, 34] reduce( ) reduce() 函数...Python2.x的时候是系统内置函数,到Python3.x就已经归入functools库里面了。...函数将一个数据集合(链表,元组等)的所有数据进行下列操作:用传给 reduce 函数 function(有两个参数)先对集合的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function

    69220

    Python匿名函数内置高阶函数详解

    为了配合Python办公自动化系列文章,本文带来的是偷学Python第二十四天:Python匿名函数内置高阶函数使用,其他内容将在近期更新完毕,本文目录如下 匿名函数 如果我们需要定义一个特别简单的函数...,让代码更加精简,而且不用考虑命名问题,但是PEP8规范里面是不推荐用lambda这种方式的 内置函数 map( ) map()会根据提供的函数对指定序列做映射,使用方法: map(function...2, 4, 6, 56, 12, 6, 2, 34] print(list(list2)) # [2, 2, 4, 6, 56, 12, 6, 2, 34] reduce( ) reduce() 函数...Python2.x的时候是系统内置函数,到Python3.x就已经归入functools库里面了。...函数将一个数据集合(链表,元组等)的所有数据进行下列操作:用传给 reduce 函数 function(有两个参数)先对集合的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function

    91810

    Python Python内置函数总结

    Python内置函数总结 总结python的常用内置函数 常用函数1 函数名 参数 介绍 返回值 举例 abs Number 返回数字绝对值 正数字 abs(-10) all List 判断列表内容是否全是...2 函数名 参数 介绍 返回值 举例 isinstance Object, type 判断对象是否是某种类型 Bool isinstance('a', str) type Object 判断对象的类型...type(10) vars instance 返回实例化的字典信息 dict dir object 返回对象中所有可用方法和属性 List dir('asd') hasattr Obj, key 判断对象是否有某个属性...Bool hasattr('1', 'upper') 常用函数3 函数名 参数 介绍 返回值 举例 setattr Obj,key,value 为实例化对象添加属性与值 无 setattr(instance...)) setattr(test, 'c', 3) print(test.c) # 若存在, 会覆盖 print(vars(test)) # setattr((list, 'c', 1)) # 内置的类不可自定义属性

    32710

    Bash 获取 Python 模块变量列

    Bash 获取 Python 模块的变量列表可以通过使用 python -c 来运行 Python 代码并输出变量名列表。...1、问题背景在编写 Bash 补全脚本时,需要获取已安装 Python 模块与模式匹配的所有变量。为了避免解析注释等内容,希望仅使用 Python 相关功能。...获取该模块的所有变量(即非函数、非内置的全局变量),可以使用以下步骤:方法:使用 dir() 函数结合过滤使用 python -c 运行 Python 脚本。...使用 dir() 获取模块的所有名称。使用 inspect 模块过滤出变量(排除函数、类、模块等)。...扩展如果需要进一步处理输出内容,可以 Bash 中将其保存为数组:variables=($(python -c "import mymoduleimport inspectvariables = [name

    8910

    Kubernetes集群扩展CoreDNS

    用于调整Kubernetes集群的CoreDNS资源/需求的指南 Chris O'Haver 我正在分享Kubernetes(1.12)中使用CoreDNS(1.2.5)运行的一些测试结果,以便为将...除了默认配置测试CoreDNS之外,我还测试了CoreDNS并启用了可选的autopath插件。...这些测试启用autopath时量化了内存/性能交易。 本文中的指南和公式基于GCE的一组集群测试,您的环境可能会有所不同。...内存和Pod 大规模Kubernetes集群,CoreDNS的内存使用率主要受集群Pod和服务数量的影响。 ?...使用autopath插件 CoreDNS的autopath插件是一个减轻ClusterFirst搜索列表惩罚的选项。启用后,它会减少客户端查找外部名称时进行的DNS查询次数。

    2.2K30
    领券