Bash command output not saving to text file or variable
本问题已经有最佳答案,请猛点这里访问。
我在尝试存储SSH检查的输出时看到奇怪的行为,看我是否有SSH访问帐户。 我尝试了以下方法:
1 | ssh git@bitbucket.org > temp.txt |
我希望有一个字符串消息告诉我权限是否被拒绝或不保存到
1 | ls -l > temp.txt |
该输出保存到文件。 什么可能导致这种行为上的差异? 我最终将输出保存到变量,但也看到了类似的行为。 我在Ubuntu 16.04 bash版本4.3.48(1)。
由于"权限被拒绝"通常被视为错误,输出是否被路由到stderr而不是stdout? 如果是这样,则需要使用
更多信息:
在许多系统中,程序输出被分解为多个流,最常见的是
语法
试试这个:
1 | ssh git@bitbucket.org > temp.txt 2>&1 |
基本上这是什么告诉linux将stderr(2)重定向到stdout(& 1),然后将stdout重定向到你的文件"temp.txt"