小编Ere*_*evi的帖子

添加到路径与从 /bin 链接

我们的系统管理员在服务器上安装了一个软件应用程序 (Maven),并告诉每个人将该/usr/local/maven/bin/文件夹添加到他们的路径中。

我认为从/bin文件夹(或每个人在其路径中拥有的其他文件夹)链接该文件夹中的几个程序可能会更方便,如下所示:

ln -s /usr/local/maven/bin/* /bin
Run Code Online (Sandbox Code Playgroud)

这样对吗?我的建议是否有一些隐藏的副作用?

path symlink directory-structure

30
推荐指数
2
解决办法
7万
查看次数

Shell one-liner 用于在管道中间添加一条线

我编写了一个脚本,将输入文件发送到 CPP,然后发送到 grep,然后发送到某个程序:

cpp $1 | grep -v "#" | theprogram
Run Code Online (Sandbox Code Playgroud)

但是,“theprogram”要求输入以某个常量行“theprogram-1.0”开头。所以,我想将该常量行添加到 grep 的输出之前,就在它被发送到“theprogram”之前。

当然,我可以使用临时文件来完成所有这些……但我确信有一种方法可以在一行 shell 管道中完成如此简单的任务,而无需临时文件。诀窍是什么?

shell pipe

6
推荐指数
1
解决办法
1582
查看次数

如何清理被淹的邮箱

今天我打开了我的大学邮箱,几个月没有打开它。我发现它充斥着来自 cron 守护进程的大约 30 万条消息,通知我某个 cron 作业中的某个不重要的警告。我立即停止了那个 cron 工作,但现在我被一个巨大的邮箱困住了,找不到重要的消息(如果有的话)。

我想自动删除 cron 守护进程发送的所有消息(但不是其他消息)。我怎样才能做到这一点?

如果这有帮助:除了标准的 Unix 工具外,该服务器上还安装了 pine。

email

5
推荐指数
1
解决办法
2523
查看次数

如何使Makefile可执行?

我有一个 Makefile,我想make在双击它时自动运行(从 Ubuntu 文件管理器)。因此,我使这个 Makefile 可执行,并在其顶部添加了以下 shebang 行:

#!/usr/bin/make -f
Run Code Online (Sandbox Code Playgroud)

当我跑步时/usr/bin/make -f Makefile,我得到了想要的结果。

但是,当我双击 Makefile 或只是运行 时./Makefile,出现错误:

: No such file or directory
clang-9      -o .o
clang: error: no input files
make: *** [<builtin>: .o] Error 1
Run Code Online (Sandbox Code Playgroud)

使我的 Makefile 可执行的正确方法是什么?

以下是我的 makefile 的全部内容:

#!/usr/bin/make -f

# A makefile for building pdf files from the text (odt files) and slides (odp files).
# Author: Erel Segal-Halevi
# Since: 2019-02

SOURCES_ODP=$(shell find . -name '*.odp')
TARGETS_ODP=$(subst …
Run Code Online (Sandbox Code Playgroud)

make shebang

5
推荐指数
1
解决办法
1274
查看次数

如何在反引号内使用变量

我有一个 bash 脚本,它接受一个参数“$input”,并且(除其他外)将它定向到一个程序中并收集输出。

目前我的线路是:

OUTPUT=`./main.exe < $input`
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

$input: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)

正确的做法是什么?

scripting bash io-redirection variable

4
推荐指数
1
解决办法
922
查看次数

这三个额外的字符是什么,为什么它们会导致如此奇怪的错误?

看看这两个文件:

它们在我看来完全相同,但文件 1 有 41 个字节,文件 2 有 44 个字节。

现在,我不会关心 3 个额外的字符,但是,我认为这些字符也会导致一个奇怪的错误:当我克隆并运行这些文件时,文件 1 运行正常,而文件 2 在第 3 行返回错误:“./ BasicCheck.sh: line 3: cd: case0 : No such file or directory"。

那么:这些额外的字符是什么?为什么它们会导致错误?我应该怎么做才能修复这些错误?

我的猜测是它们是换行符——也许文件 1 有基于 Linux 的换行符,而文件 2 有基于 Windows 的换行符。这是正确的吗?为什么它会导致这样的错误?

bash error-handling

3
推荐指数
1
解决办法
367
查看次数