问题标签 [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 投票
7 回答
8527 浏览

bash - 如何在 bash 中创建秒表?

我创建了一个简单的秒表(bash 函数)来计算时间,但现在它以毫秒为单位显示当前时间。

编码:

我尝试按照此答案中的说明进行更改,但它仅适用于自 Unix Epoch 以来的第二个。

当我使用date格式+%s.%N时,由于 bash 减法只需要整数,因此上述答案的减法停止工作。

我该如何解决它并拥有一个可以打印时间的终端秒表,如下所示:

?

0 投票
1 回答
39 浏览

bash - 过时的功能仍保留在 bash 环境中

如果我在 bash 脚本中定义一个函数,例如 envsetup.sh

然后我通过

. envsetup.sh

我的环境中有 blabla 功能可以使用。但是,如果我删除此函数并再次获取它,则 blabla 函数仍然存在。

为什么不删除?

0 投票
2 回答
753 浏览

bash - 如何覆盖 pushd 和 popd 对 dirs 的自动调用?

我的bash(4.1)目录堆栈通常有十几个或更多条目。我想用dirswith替换输出dirs -v,所以我再也不用玩“猜魔数”pushd了。

我的部分解决方案

我替换为使用dirs执行的函数:dirs -vcommand

(更新:根据气动的建议,我现在使用builtin代替command。它不能解决这个问题,但它稍微安全一些。)

dirs输出现在可读,但pushd仍然popd产生旧的 vomit-of-slashes

dirs用别名替换我的函数后,我得到了相同的(缺少)结果:

解决方法

pushd我最终通过覆盖和得到了我想要的输出popd

这可行,但它需要覆盖三个内置函数而不是一个。此外,这可能是一个不完美的模仿,pushd并且popd在某些极端情况下我没有想到。我宁愿dirs只覆盖。

我的问题

为什么覆盖dirs不起作用? 根据bashman页面,在pushd和下popd

如果pushd命令成功,dirs也会执行 a。

那么为什么pushd并且popd似乎调用了内置dirs函数而不是函数或别名呢?

关于bash文档的脚注

在线手册dirs中缺少“a is perform as well”的段落,但它们出现在页面和中。我的4.1 文档和当前的 4.4 文档都以相同的方式不一致,这表明 4.4(如果我有的话)的行为相同。bashref.*manbash.*builtins.*bash

0 投票
1 回答
74 浏览

bash - Bash函数不执行输入命令

在 bash 文件s.sh中,我有一个 Executor 函数,我将要执行的命令传递给该函数。每当某些命令未按预期工作时,此函数就会输出该命令。

现在我正在调用这个函数 -

Executor clangPath="Hello" make(这用于在makefile中将clangPath变量的值设置为“Hello”)

这导致了一个错误 -

但是像这样执行相同的命令可以正常工作

看了错误之后,我以为字符串引号可能有错误,所以我尝试了

exitIfFail clangPath='"Hello"' make

即使这导致了错误 -

错误的原因可能是什么?

0 投票
2 回答
2907 浏览

bash - 使用非标准名称取消设置 bash 函数变量

我可能在一个来自 shell 的 bash 脚本中拥有这个函数

如果我打电话

事情似乎按预期工作

但是,如果我将此作为我的功能:

那么如果我打电话

或者

我收到这条消息:

如何按原样取消设置此变量?

0 投票
1 回答
401 浏览

bash - 具有多个布尔函数的 Bash 谓词

编写 bash 脚本但不知道如何在谓词中使用多个函数:

输出:

为什么 POWEROFF 在 LOOP 之前?没有外部循环。使用多个函数编写谓词的正确方法是什么?

0 投票
2 回答
132 浏览

python - 如何获取和比较 Bash 函数参数?

这应该是一个简单的答案,但我一直无法找到一个简单的解决方案。我正在尝试创建一个运行 reindent.py 工具脚本的 bash 脚本,但我希望能够让用户输入他是否要将文件写回磁盘。基本上我想输入reindent_python -n FILE_PATHor reindent_python FILE_PATH。到目前为止,我得到了以下信息:

由于这是我的第一个 shell 脚本,我不确定如何获取第一个参数是否为 -n 以及是否$1为 n 参数和$2FILE_PATH?我将如何创建这个脚本?

谢谢!

0 投票
4 回答
2199 浏览

linux - bash 脚本案例切换

我正在尝试case在 bash 脚本的语句中初始化一个变量,

但我收到此错误:

我错过了什么?