12得票1回答
当从/bin/sh运行时,“. filename”找不到文件,但在从/bin/bash运行时可以正常工作;为什么?

我的简单脚本如下:#!/bin/sh DEF=.file_name_with_a_leading_dot.sh . ${DEF} 注意顶行的/bin/sh。 当我运行这个简单脚本时,会出现文件找不到的错误。 但是,如果我将顶行改为#!/bin/bash,那么脚本就可以在当前目录中找到该文...

11得票3回答
无法在当前目录中找到脚本

显然,如果脚本位于当前目录中,我无法对其进行source。例如:# source some/dir/script.sh Ok 脚本正常工作,但如果我和脚本在同一目录下,则会出错:# cd some/dir # source script.sh -sh: source: script.sh: f...

92得票3回答
如何在POSIX sh中获取脚本目录?

我有以下代码在我的Bash脚本中。现在我想在POSIX sh中使用它。我该如何转换?DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"

20得票2回答
如何防止Bash使用内建命令?

我正在尝试修复一个使用echo的脚本,它使用的是内置命令而不是命令,我该如何防止这种情况发生? 我知道可以使用/bin/echo来强制使用它,但我不想硬编码路径(以保证可移植性)。 我考虑使用以下内容:$ECHO=`which echo` $ECHO -e "text\nhere" 但是w...

8得票3回答
如何避免Shell脚本在特定命令失败时退出

以下脚本使用-e选项运行,如果其中任何命令失败,它将退出: #!/bin/sh -e command1 #script should fail if command1 fails command2 #script should NOT fail if command2 fails comma...

10得票3回答
两个进程的反馈stdin和stdout

我有两个进程,它们通过标准输入和标准输出进行交互。 假设我有进程 A 和进程 B。B 的标准输出需要输入到 A 的标准输入中,而 A 的标准输出也需要输入到 B 的标准输入中。 是否有一种简单的方法可以在一个命令中表达这种关系?或者是否有一个基本的 shell 脚本可以实现这个功能? 谢...

12得票4回答
从字符串中正确读取带引号/转义的参数

我遇到了一个问题,无法在Bash脚本中将参数传递给命令。 poc.sh:#!/bin/bash ARGS='"hi there" test' ./swap ${ARGS} 交换:#!/bin/sh echo "${2}" "${1}" 当前的输出为:there" "hi 只更改poc.sh...

13得票6回答
UNIX日期:如何将周数(date +%W)转换为日期范围(星期一至星期日)?

我有一个从巨大的日志文件中提取出来的星期数列表,它们是使用以下语法提取的:$ date --date="Wed Mar 20 10:19:56 2012" +%W; 12 我想创建一个简单的bash函数,可以将这些周数转换为日期范围。 我认为函数应该接受2个参数:$number和$year,例...

29得票5回答
为什么我要创建一个创建函数的别名?

我偶尔会看到这种模式,特别是在有关Bash提示符自定义的问题中。 alias f='_ () { useful code; }; _' 我完全看不出在这里创建别名的理由。显而易见的重构 f () { useful code; } 避免完全声明别名,而是一次性定义函数,似乎更简单、更...

25得票3回答
运行npm脚本时忽略错误(连续执行)。

每次我构建我的项目以进行服务时,我必须执行三个脚本: npm run build:local //calls tsc to compile ts into js files npm run build:webpack //invokes webpack to bundle js ...