echo - ksh 回显到特定语句的 stderr

标签 echo ksh stderr

我有以下 shell 脚本,它将输出回显到日志,并将错误回显到 err_file。但是,我特别想将一些语句回显到 stderr。请帮忙

#!/bin/ksh
echo "paramPassed: $0 $#" 

err_file="error_file.txt"
new_file="new_file.txt"

exec >> ${new_file}
#exec >> ${new_file} 2>${err_file}
#exec >> ${new_file} 2>&1

if [ $# -eq 1 ]; then
    username=$1
fi  

userInfo=$(paramInfo ${username} | awk -F: '{print $2}')
echo ${userInfo} 

rcp ${err_file} mtvst32:/rcs/ver34/${err_file}

if [ $? -ne 0 ]; then
        #This doesn't work. Need the following to go to console
        echo "UserInfo.SH FAILED copy to mtvst32" >> &2; 
fi  

我希望将最后一个 if 条件的输出发送到 std err 但是,不知道该怎么做。

最佳答案

我怀疑您收到了一条错误消息。如果您发布它会很有帮助。但是,这可能会解决您的问题:

echo "UserInfo.SH FAILED copy to mtvst32" >&2

删除空格和其中一个 >

关于echo - ksh 回显到特定语句的 stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4367960/

相关文章:

php - 如何在mysql表中添加特定单元格

unix - ksh:多个字符串的 grep 命令。如果找到所有字符串则只返回结果

bash - 如何将openssl s_client -connect stdout和stderr发送到/dev/null?

c++ - 如何将标准输出重定向到标准错误

php - 用php回显mysql查询结果

php - 如何在 Smarty 中合并两个字符串?

linux - 在unix中的if循环中提取受密码保护的文件

ksh - 重定向到一个奇怪的文件描述符 否

c - 我什么时候应该使用 perror ("...") 和 fprintf(stderr, "...")?

linux - 无法识别 Shell 脚本 -e 命令行参数