标签: output

如何将输出发送到屏幕和邮件?

我使用以下内容在脚本末尾发送电子邮件。

echo "Script finished on `date`" | /usr/bin/Mail -s "Script complete" "myaccount@myserver.com".
Run Code Online (Sandbox Code Playgroud)

但是,我也想在屏幕上回显相同的消息。我如何在同一个语句中做到这一点?

io-redirection email output

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

GNU屏幕的实时日志输出?

我正在尝试将 GNU Screen 的输出实时发送到日志文件。我试过使用 tee,但这似乎不适用于屏幕。screen 的日志功能对此不起作用,因为它不是实时的,我很确定。有任何想法吗?

gnu-screen output

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

LS 命令输出到文件

我想将 ls 命令的输出捕获到一个文件中

ls >> lsOutput.log
Run Code Online (Sandbox Code Playgroud)

如果在命令行中执行,则此方法有效。但是当放入 shell 脚本 ( lsOutput.sh) 时,返回

./lsOutput.sh: 3: ./lsOutput.sh: total: not found
Run Code Online (Sandbox Code Playgroud)

lsOutput.sh 代码

#!/bin/sh

`ls -lrt` >> lsOutput.log
Run Code Online (Sandbox Code Playgroud)

files output

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

GNU Parallel:立即按作业顺序一次显示作业 stderr/stdout

我知道 GNU Parallel 缓冲区 std/stderr 因为它不希望作业输出被破坏,但是如果我用 运行我的作业parallel do_something ::: task_1 task_2 task_3,无论如何要立即显示 task_1 的输出,然后在 task_1 完成后,task_2 一直到它的当前输出等

如果 Parallel 不能解决这个问题,有没有其他类似的程序可以解决这个问题?

shell output gnu-parallel

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

如何grep,然后搜索和替换输出?

我有一些来自 iconv 的输出,例如

$ iconv -l | grep ISO | head -5
CSISO4UNITEDKINGDOM//
CSISO10SWEDISH//
CSISO11SWEDISHFORNAMES//
CSISO14JISC6220RO//
CSISO15ITALIAN//
durrantm:~
Run Code Online (Sandbox Code Playgroud)

我怎样才能将//'s更改为,例如--'s ?

我试过了,$ (iconv -l | grep ISO).gsub('\/\/','--')但没有运气。

grep replace output

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

将修改环境的命令的输出保存到变量中

如何将修改环境的命令的输出保存为变量?

我正在使用 bash shell。

假设我有:

function f () { a=3; b=4 ; echo "`date`: $a $b"; }
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用命令来运行f

$ a=0; b=0; f; echo $a; echo $b; echo $c
Sat Jun 28 21:27:08 CEST 2014: 3 4
3
4
Run Code Online (Sandbox Code Playgroud)

但我想将输出保存f到变量c,所以我尝试:

a=0; b=0; c=""; c=$(f); echo $a; echo $b; echo $c
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我有:

0
0
Sat Jun 28 21:28:03 CEST 2014: 3 4
Run Code Online (Sandbox Code Playgroud)

所以我这里没有任何环境变化。

如何将命令(不仅仅是函数)的输出保存到变量并保存环境更改?

我知道这会$(...)打开新的子外壳,这就是问题所在,但是否可以做一些解决方法?

bash environment-variables output

8
推荐指数
1
解决办法
696
查看次数

使用 bash 命令静默 GnuPG 密码请求

我试图隐藏 gnupg 命令的“输出”,但它似乎总是被打印出来。

命令是:

echo "thisprogramwørks" | gpg -q --status-fd 1 --no-use-agent --sign --local-user D30BDF86 --passphrase-fd 0 --output /dev/null

这是一个用于验证 pgp 密钥密码的命令,使用它如下:

a=$(echo "thisprogramwørks" | gpg -q --status-fd 1 --no-use-agent --sign --local-user D30BDF86 --passphrase-fd 0 --output /dev/null)

我恢复输出:

echo $a [GNUPG:] USERID_HINT F02346C1EA445B6A p7zrecover (7zrecover craking pgp test) <a@a> [GNUPG:] NEED_PASSPHRASE F02346C1EA445B6A F02346C1EA445B6A 1 0 [GNUPG:] GOOD_PASSPHRASE [GNUPG:] BEGIN_SIGNING [GNUPG:] SIG_CREATED S 1 8 00 1435612254 8AE04850C3DA5939088BE2C8F02346C1EA445B6A

问题是当我使用命令时,控制台打印:

You need a passphrase to unlock the secret key for user: "test …

terminal io-redirection gpg output

8
推荐指数
1
解决办法
2722
查看次数

Bash 输出命令太大,看不懂!

我在 Ubuntu 14.04 初始化时遇到了一些问题,它无法挂载 SSH 文件夹,并为我提供了通过按 M 手动恢复的选项,显示以 root 用户记录的命令行以调试问题。

当我尝试阅读sshfs帮助文件时,我的麻烦就开始了,它比屏幕大,因此无法阅读剪切部分。

我设法通过这样做来解决这个问题,sshfs -h >> read; nano read但我想知道是否有一种最简单或更优雅/正确的方式来完成这项工作。

PS:我不在 Ubuntu 终端模拟器,所以不可能调整“滚动”选项卡,因为它不存在。

ubuntu terminal cat output

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

连接来自标准输出和文件的内容

我们如何将标准输出(或标准错误)和文件的结果连接到最终文件中。

例如

ls -a | grep text1
Run Code Online (Sandbox Code Playgroud)

连接file2.txt到最终结果(不是file2.txt),而不存储grep text1到中间的东西,例如grep text1 > file1.txt

cat stdout output

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

如何将 airodump-ng 的输出保存到文件中?

我尝试通过以下方式重定向输出流从 airodump-ng 获取文件:

airodump-ng mon0 2>&1 | tee file.txt
Run Code Online (Sandbox Code Playgroud)

但这会附加到文件而不是重写它。所以在那之后,我尝试通过 fifo 管道将输出重定向到其他输出流:

第一个终端:

mkfifo fifo1
echo "while [ 1 ]; do cat ~/fifo1 2>&1 | tee file.txt done" > readfifo.sh
chmod +x readfifo.h
xterm -e readfifo.sh
Run Code Online (Sandbox Code Playgroud)

第二个终端:

airodump-ng mon0 2>&1 > fifo1
Run Code Online (Sandbox Code Playgroud)

在结果中我们有一个附加的 file.txt,但为什么呢?如何在文件中只有终端的输出,而不是附加到它?是否可以在写入文件时过滤 airodump-ng 的输出?

最好的问候,V7

io-redirection stdout output fifo airodump-ng

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