men*_*ana 4 bash stdout io-redirection
这是一个简单(也许是虚拟)问题,在一个简单的问题场景中.
我想将输出文件存储在变量中:
#!/bin/bash
LOG=/var/log/myown/backup.log
Run Code Online (Sandbox Code Playgroud)
所以我可以这样构建我的脚本:
#!/bin/bash
LOG=/var/log/myown/backup.log
echo "Backup créé le $(date)" >>$LOG
Run Code Online (Sandbox Code Playgroud)
另外,我想让LOG变量指向STDOUT.
然后我可以简单地更改LOGas 的值,LOG=&1因此它不会写入文件而是写入STDOUT.
这是你需要的吗?
LOG=/dev/stdout
Run Code Online (Sandbox Code Playgroud)
也许:
LOG=/var/log/myown/backup.log
exec 4> "$LOG" ## exec >>4 "$LOG" to append
echo "Backup créé le $(date)" >&4
Run Code Online (Sandbox Code Playgroud)
或者最后:
LOG=/var/log/myown/backup.log
exec 4> "$LOG" ## exec >>4 "$LOG" to append
LOG_FD=4 ## Change to 1 to put back to stdout.
echo "Backup créé le $(date)" >&"$LOG_FD"
Run Code Online (Sandbox Code Playgroud)
您还可以使用功能以方便:
function log {
echo "$1" >&"$LOG_FD"
}
log "Backup créé le $(date)"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |