我有一个产生另一个进程的脚本。我想将该过程的输出重定向到日志文件。但是>>不起作用
#!/bin/bash
#!/usr/local/bin/expect -f
####echo $@
/usr/local/bin/expect <<EOD
set timeout 10
spawn $sec/add.zims.user ${1} "${2} ${3}" >> /home/arvind/logs/ADD.log
expect "e4234234's Password: " { send "${4}\n" }
expect "*'s New password: " { send "${5}\n" }
expect "Enter the new password again:" { send "${5}\n" }
EOD
'''
您可以让外壳处理重定向:
/usr/local/bin/expect <<EOD
# ...
spawn ... ;# with no redirection
# ...
EOD
或者,使用期望的log_file
和log_user
命令:
log_file -a $env(HOME)/logs/ADD.log
会将输出发送到该日志文件中(除非您指定-noappend
标志,否则将附加输出)。这不会not将常规输出关闭到stdoutlog_user 0
将关闭通常的标准输出。这不会更改使用log_file
所以:
/usr/local/bin/expect <<EOD
set timeout 10
log_user 0
log_file -a /home/arvind/logs/ADD.log
spawn $sec/add.zims.user ${1} "${2} ${3}"
# ...
END