问题标签 [bash-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
272 浏览

bash - 在 Bash 函数中使用所有参数的子范围

我在 Bash 脚本中有这个函数:

如您所见,我正在使用参数$1$2. 然后我只是将所有其余部分附加到命令的末尾。它们转到$9,但实际上应该附加所有内容。

必须有一个更简单的方法吗?

0 投票
2 回答
14104 浏览

bash - Bash 函数参数返回错误“找不到命令”

我在 bash 脚本中有这个功能,可以创建一个新的 jekyll 帖子;但它将参数作为未找到的命令返回。这是脚本:

但是每当我尝试运行它时,它都会返回:

它似乎试图将参数作为命令运行。

我什至试过这个并得到相同的结果

谁能告诉我我做错了什么?

0 投票
1 回答
132 浏览

bash - Bash 的函数会调用带有引用参数的命令吗?

假设我在 Bash 中有一个函数:

所以它是使ll作品像ls -l。大多数情况下,它会起作用,但是

可以使用 name 的文件ha ha,但是

会失败,因为它被认为是

有没有办法使这项工作?我想我们可以做到的

(注意"$@"不同于"$*","$@"表示单独引用,而"$*"表示全部引用在一个字符串中)

但是,ll -t "ha ha"会变成ls -l "-t" "ha ha",它确实有效,但有点奇怪,我不确定它是否会在某些情况下崩溃。

有没有另一种方法让它工作,另一件事是,我认为在功能上,command ls -l "$@"ls -l "$@"一样的吗?(command只是直接运行程序而不调用任何可能的bash函数来防止递归发生吗?)

0 投票
3 回答
8604 浏览

bash - 从子shell返回值并输出到局部变量

我发现了我无法解释的奇怪行为。以下代码可以正常工作:

意味着我得到了我期望的价值:

一旦我将local定义添加到变量:

我得到以下信息:

问:为什么?发生了什么?我可以将 subshel​​l 的输出捕获到local变量并可靠地检查 subshel​​l 的返回值吗?

PS :prepare-archive在主 shell 脚本中调用。第一个exitexitfromcheck-spec-file函数,第二个是 fromprepare-archive函数——这个函数本身是从主 shell 脚本执行的。check-spec-file我从by返回值exit 1,然后将此值传递给exit $?. 因此,我希望它们应该是相同的。

0 投票
4 回答
39733 浏览

bash - 在 bash 脚本中读取函数中的标准输入

我有一些输出一些信息的 bash 函数:

  • 在 epson-ppds 中查找模型名称
  • 在三星 ppds 中查找型号名称
  • 在 hp-ppds 中查找模型名称
  • ETC ...

我一直在编写读取输出并对其进行过滤的函数:

但我认为这样做会更好:

然后调用另一个高级函数:

如何通过最佳 bash 实践实现这一目标?

0 投票
2 回答
4028 浏览

bash - 使用括号而不是大括号定义 bash 函数体

这个脚本演示了用括号和大括号定义一个 bash 函数。括号具有在函数“本地”中创建环境变量的良好效果,我猜是因为函数体是作为子外壳执行的。输出是:

问题是这是否是定义函数的允许语法。

0 投票
2 回答
1394 浏览

linux - 传递别名作为函数参数linux bash

大家好,我正在学习如何在 linux 中使用 .bashrc 文件,正如我的标题所述,我想知道如何让函数将参数识别为别名

我有一个名为 home 的别名,定义为:alias home=$HOME

和一个函数 go 定义为

但是当我这样做go home

bash: cd: home: No such file or directory ls: cannot access home: No such file or directory

当我想要它去 $HOME

我将如何实施呢?

0 投票
3 回答
1716 浏览

linux - 如何将 find 的输出通过管道传输到 pdf 查看器

你好 Bash 超级英雄,

我正在尝试创建一个简单的 bash 函数,将输出从find管道传输到 pdf 查看器,类似但仅限于evince

上述函数打开查看器,但不显示任何所需的文件/路径。最终,我想显示从find输出的所有 pdf 文件。一个简单的查找命令,例如:

创建如下输出:

然后的想法是在查看器中显示这两个 pdf 文件。

有什么想法或建议吗?如果有帮助,我正在使用 Linux Mint。提前致谢!

0 投票
1 回答
151 浏览

bash - .bashrc 函数实现 grepall

我有 2 个 bash 函数 catall 和 grepall

catall工作正常,首先打印文件名,然后是内容和新行

grepall不起作用,应该catall与文件内容相同但使用 grep 阶段

为什么$2不被sub'ed

你能让这个 grepall 工作吗?

0 投票
1 回答
55 浏览

bash - replaceInAll 脚本在 cli 上工作,但不是 .bashrc 函数

这个 .bashrc 函数在命令行上运行,它是一个不错的 bash 单行器。

但将其移至 bash 配置文件并停止工作?

replaceInAll (){ find . -name "$1" -print | xargs sed -i 's/$2/$3/g' }

我对此有什么误解?