小编Dr.*_*ini的帖子

将脚本的所有输出捕获到文件中(从脚本本身)

我有一个 bash 脚本,它调用各种命令并打印一些输出(来自被调用的命令本身,例如git pull,以及脚本本身生成的信息性消息,例如Operation took XX minutes.

我想整个输出捕获到文件,从脚本本身:基本上我试图避免需要调用./myscript.sh | tee file.txt非相关,在这里的原因。

基本上我想做这样的事情:

startCapture

git pull

echo "Text"

other-command

endCapture
Run Code Online (Sandbox Code Playgroud)

我还要求在脚本运行时将输出打印在我的 shell 上。

最终目标是:

  1. ./myscript.sh无需额外的 shell 结构即可运行
  2. 像我现在一样查看终端上的输出
  3. 在磁盘上获取包含整个输出的文件

这甚至可能吗?

bash string files output

11
推荐指数
2
解决办法
5万
查看次数

更改输入文本的颜色,而不是输出

我需要捕获终端的屏幕截图,其中键入的命令在视觉上“脱颖而出”。现在我正在使用它来使我输入的命令变为“红色”:

PS1='\[\e[0;31m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[0;34m\]\$ \[\e[m\]\[\e[0;31m\]'
Run Code Online (Sandbox Code Playgroud)

问题是:提示后的一切都是红色的,不仅仅是我输入的文字

红色 linux 输出

我怎样才能解决这个问题?

我正在使用 bash (CentOS 7)。

colors bash terminal centos

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

curl 打印其 pid 然后在后台运行

我正在通过一个简单的curl请求体验新事物。

该命令是 curl 的简单调用,例如:

curl http://example.com/endpoint/?arg1=val1&arg2=val2

这个调用应该返回一个 500+ MB 的 XML 文件(准备好后,我会把-O它保存到一个文件中),但没有什么奇怪的,真的。

奇怪的是 curl 只是打印它的 pid 并进入后台:

[1] 31562

过了一会儿,远程文件开始出现在控制台中,并且在后台,我无法使用Ctrl+C.

我从来没有经历过这样的事情。如果我尝试下载 1.9 GB 的文件:

curl -O https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/7601.17514.101119-1850_Update_Sp_Wave1-GRMSP1.1_DVD.iso

它工作正常!

任何的想法?

来自常规下载的标题:

curl -v -s https://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/7601.17514.101119-1850_Update_Sp_Wave1-GRMSP1.1_DVD.iso 1> /dev/null
*   Trying 92.123.112.141:443...
* TCP_NODELAY set
* Connected to download.microsoft.com (92.123.112.141) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
... more HTTPS stuff ... …
Run Code Online (Sandbox Code Playgroud)

download curl files

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

标签 统计

bash ×2

files ×2

centos ×1

colors ×1

curl ×1

download ×1

output ×1

string ×1

terminal ×1