我们的系统管理员在服务器上安装了一个软件应用程序 (Maven),并告诉每个人将该/usr/local/maven/bin/文件夹添加到他们的路径中。
我认为从/bin文件夹(或每个人在其路径中拥有的其他文件夹)链接该文件夹中的几个程序可能会更方便,如下所示:
ln -s /usr/local/maven/bin/* /bin
Run Code Online (Sandbox Code Playgroud)
这样对吗?我的建议是否有一些隐藏的副作用?
我编写了一个脚本,将输入文件发送到 CPP,然后发送到 grep,然后发送到某个程序:
cpp $1 | grep -v "#" | theprogram
Run Code Online (Sandbox Code Playgroud)
但是,“theprogram”要求输入以某个常量行“theprogram-1.0”开头。所以,我想将该常量行添加到 grep 的输出之前,就在它被发送到“theprogram”之前。
当然,我可以使用临时文件来完成所有这些……但我确信有一种方法可以在一行 shell 管道中完成如此简单的任务,而无需临时文件。诀窍是什么?
今天我打开了我的大学邮箱,几个月没有打开它。我发现它充斥着来自 cron 守护进程的大约 30 万条消息,通知我某个 cron 作业中的某个不重要的警告。我立即停止了那个 cron 工作,但现在我被一个巨大的邮箱困住了,找不到重要的消息(如果有的话)。
我想自动删除 cron 守护进程发送的所有消息(但不是其他消息)。我怎样才能做到这一点?
如果这有帮助:除了标准的 Unix 工具外,该服务器上还安装了 pine。
我有一个 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) 我有一个 bash 脚本,它接受一个参数“$input”,并且(除其他外)将它定向到一个程序中并收集输出。
目前我的线路是:
OUTPUT=`./main.exe < $input`
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
$input: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)
正确的做法是什么?
看看这两个文件:
它们在我看来完全相同,但文件 1 有 41 个字节,文件 2 有 44 个字节。
现在,我不会关心 3 个额外的字符,但是,我认为这些字符也会导致一个奇怪的错误:当我克隆并运行这些文件时,文件 1 运行正常,而文件 2 在第 3 行返回错误:“./ BasicCheck.sh: line 3: cd: case0 : No such file or directory"。
那么:这些额外的字符是什么?为什么它们会导致错误?我应该怎么做才能修复这些错误?
我的猜测是它们是换行符——也许文件 1 有基于 Linux 的换行符,而文件 2 有基于 Windows 的换行符。这是正确的吗?为什么它会导致这样的错误?