相关疑难解决方法(0)

如何判断命令或 shell 脚本的输出是 stdout 还是 stderr

假设我运行了一个命令或 shell 脚本,它给了我输出。在不知道此命令或 shell 脚本的内部结构的情况下,如何确定输出是来自stderr还是stdout

例如,

$ ls -ld /
drwxrwxr-t  35 root  admin  1258 Dec 11 19:16 /
Run Code Online (Sandbox Code Playgroud)

对比

ls -ld /test
ls: /test: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我如何确定第一个命令打印到stdout了第二个stderr(做了吗?)?

io-redirection

39
推荐指数
3
解决办法
2万
查看次数

在屏幕上只显示标准错误,但将标准输出和标准错误写入文件

我如何使用 BASH 魔法来实现这一目标?
我只想在屏幕上看到 stderr 输出,
但我希望将 stdout 和 stderr 都写入文件。

澄清:我希望 stdout 和 stderr 最终出现在同一个文件中。按照它们发生的顺序。
不幸的是,下面的答案都没有做到这一点。

shell bash io-redirection

30
推荐指数
3
解决办法
4万
查看次数

zsh 可以访问上次运行程序的标准输出吗?

我经常使用findlocate来查找路径。

(~) locate foobar.mmpz
/home/progo/lmms/projects/foobar.mmpz
Run Code Online (Sandbox Code Playgroud)

下一步通常是打开或以其他方式操作文件。在像上面这样的快乐情况下,我可以这样做:

(~) ls `!!`
ls `locate foobar.mmpz`
/home/progo/lmms/projects/foobar.mmpz
Run Code Online (Sandbox Code Playgroud)

但是当有很多输出行时,没有人会太高兴,其中一些可能不是路径或其他类似的东西。此外,重新运行可能浪费的命令也不是那么优雅。

有没有办法连接 zsh 以将标准输出存储到数组中以供以后操作?毕竟,将流重定向到用户是 shell 的工作。我认为它可以将前 N 行和最后 N 行存储在变量中以供以后立即使用,例如$?和其他。

好的,这很酷:https : //unix.stackexchange.com/a/59704/5674。我现在询问 zsh 专有技术(并将代码移植到 zsh)以在每个运行行之后装配这种捕获。

zsh terminal output

21
推荐指数
2
解决办法
1万
查看次数

如何将 STDOUT 和 STDERR 颜色永久更改为灰色?

这个问题类似于 Can I configure my shell to print STDERR and STDOUT in different color?

但我正在寻找一种解决方案,可以让我将STDOUT 和 STDERR 都更改为一种颜色。我不想为 STDOUT 和 STDERR 设置不同的颜色,因为这有问题并且可能会产生问题,在上面链接的答案中提到。

我很抱歉,因为我对 Unix 和 Linux 不太了解。我要寻找一个解决方案,可以让我加几行我.bashrc还是.bash_profile永久改变输出和错误的颜色。

osx shell colors terminal

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

标签 统计

io-redirection ×2

shell ×2

terminal ×2

bash ×1

colors ×1

osx ×1

output ×1

zsh ×1