相关疑难解决方法(0)

如何使用Bash将stdout和stderr重定向并附加到文件中?

要将stdout重定向到Bash中的截断文件,我知道要使用:

cmd > file.txt
Run Code Online (Sandbox Code Playgroud)

要在Bash中重定向stdout,追加到文件,我知道要使用:

cmd >> file.txt
Run Code Online (Sandbox Code Playgroud)

要将stdoutstderr重定向到截断的文件,我知道要使用:

cmd &> file.txt
Run Code Online (Sandbox Code Playgroud)

如何重定向附加到文件的stdoutstderrcmd &>> file.txt不适合我.

linux bash redirect pipe stream

1440
推荐指数
8
解决办法
70万
查看次数

Git clone:将stderr重定向到stdout但是将错误写入stderr

git clone它的输出写到stderr作为记录在这里.我可以使用以下命令重定向它:

git clone https://myrepo c:\repo 2>&1
Run Code Online (Sandbox Code Playgroud)

但是这会将所有输出(包括错误)重定向stderrstdout.有没有办法将进度消息重定向到stdout但仍然写入错误消息stderr.

git powershell git-clone

19
推荐指数
4
解决办法
6339
查看次数

这个错误是什么意思?(SC2129:考虑使用{cmd1; cmd2;} >>文件而不是单独的重定向.)

我正在编写一个脚本来为我的博客生成草稿.运行ShellCheck后,我一直看到弹出这个错误.这是什么意思,有人可以提供一个例子吗?

SC2129: Consider using { cmd1; cmd2; } >> file instead of individual redirects.

另外,我不确定我需要做什么才能将值传递$title"Title"帖子的YAML中的字段......

#!/bin/bash

# Set some variables

var site_path=~/Documents/Blog
drafts_path=~/Documents/Blog/_drafts
title="$title"

# Create the filename

title=$("$title" | "awk {print tolower($0)}")
filename="$title.markdown"
file_path="$drafts_path/$filename"
echo "File path: $file_path"

# Create the file, Add metadata fields

echo "---" > "$file_path"
{
    echo "title: \"$title\""
}   >> "$file_path"

echo "layout: post" >> "$file_path"
echo "tags: " >> "$file_path"
echo "---" >> "$file_path"

# Open the …
Run Code Online (Sandbox Code Playgroud)

bash shell shellcheck

7
推荐指数
1
解决办法
1055
查看次数

为什么“git submodule add ...”写入stderr而不是stdout?

消息

Cloning into 'sub-mod'...
done.
Run Code Online (Sandbox Code Playgroud)

git submodule add...将命令写入stderr后。我希望该消息被写入标准输出,因为我不认为它表明命令出了问题。

我可以使用以下命令序列重现此内容:

rm   -rf /tmp/repo /tmp/module
mkdir    /tmp/repo /tmp/module

cd /tmp/module

git init  > /dev/null
echo "foo" > foo;
git add foo > /dev/null
git commit . -m "+ foo" > /dev/null


cd /tmp/repo

git init > /dev/null
git submodule add /tmp/module/ sub-mod 1> /dev/null
Run Code Online (Sandbox Code Playgroud)

如果我将最后一个命令中的重定向更改为... 2> /dev/null,则不会打印任何内容。

git shell stdout stderr

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

标签 统计

bash ×2

git ×2

shell ×2

git-clone ×1

linux ×1

pipe ×1

powershell ×1

redirect ×1

shellcheck ×1

stderr ×1

stdout ×1

stream ×1