想把所有的输出都重定向到 stdout,有什么技巧吗
eg:
apt install 666 >/dev/stdout 2>&1
apt install 666 2>&1
如果一个 shell 脚本里所有的输出都要打到 stdout,有什么技巧吗
补充一下,是其他程序调用shell脚本,程序捕获整个脚本的stderr(脚本与程序约定好了格式),避免脚本中某些命令执行失败影响程序获取的结果,想将脚本中所有错误输出都打到标准输出,但是人为约定标准错误输出。举个列子
#!/bin/bash
function log.info(){
echo "$*"
}
function log.stderr(){
echo "$*" >&2
}
function test(){
log.info "test"
apt install 666 #想把这个输出打到标准输出
log.stderr "install 666 error"
}
1
whypool 2017-11-15 23:05:07 +08:00
echo ?
|
2
kkk330 2017-11-15 23:08:44 +08:00 via iPhone
tty
|
3
lululau 2017-11-15 23:09:47 +08:00
your_script.sh &> file.out
|
4
lululau 2017-11-15 23:10:36 +08:00
yout_script.sh 2>&1
|
5
hsuan 2017-11-15 23:11:52 +08:00 via Android 1
你可以试一下 exec
|
6
lululau 2017-11-15 23:12:21 +08:00
如果不想在脚本内部整体控制,在脚本开头执行:
exec 2>&1 |
7
lululau 2017-11-15 23:12:34 +08:00 1
如果想在脚本内部整体控制,在脚本开头执行:
exec 2>&1 |