【问题标题】:stty: standard input: Inappropriate ioctl for device . Running Perl script from shell scriptstty:标准输入:设备的 ioctl 不合适。从 shell 脚本运行 Perl 脚本
【发布时间】:2018-12-18 05:47:42
【问题描述】:

这是我运行 Perl 脚本的 shell 脚本。 ade 是一个控制版本控制系统,useview 提供了不同于通常命令行的环境。

当我运行它抛出的脚本时

stty:标准输入:设备的 ioctl 不合适

当我从命令行手动执行而不是使用为自动化构建的脚本时,Perl 脚本运行时不会出现任何错误。

#!/bin/sh
    host="slc09xhz.us.oracle.com"
    port=1609
    sid=prtr11db   
    fprResult=/home/$USER/Desktop/myscripts/fprResult.txt
    echo "HOST:$host"
    echo "PORT:$port"
    echo "SID:$sid"
    echo "ENV:$env"
    instance="${host}:${port}/${sid}"
    dvn=tv1
    libpath="/ade/${USER}_${dvn}/fainteg/dist/merant/lib:/usr/lib:/ade/${USER}_${dvn}/dmsc/lib:/ade/${USER}_${dvn}/ldap/lib:/ade/${USER}_${dvn}/oracle/lib:/ade/${USER}_${dvn}/fusionapps/lib/linuxx64:/ade/${USER}_${dvn}/fusionapps/hcm/pyt/lib/linuxx64:/ade/${USER}_${dvn}/bishiphome/dist/clients/epm/Essbase/EssbaseRTC/bin:/ade/${USER}_${dvn}/opmn/lib:/net/slcai797.us.oracle.com/scratch/upatch/v2.17.0/lib/import/common:/net/slcai797.us.oracle.com/scratch/upatch/v2.17.0/lib/perl:/usr/local/bin/perl_5.6.1/lib/5.6.1/i686-linux:/usr/local/bin/perl_5.6.1/lib/5.6.1:/usr/local/bin/perl_5.6.1/lib/site_perl/5.6.1/i686-linux:/usr/local/bin/perl_5.6.1/lib/site_perl/5.6.1:/usr/local/bin/perl_5.6.1/lib/site_perl"
    perlp="/net/slcai797.us.oracle.com/scratch/upatch/v2.17.0/lib/import/common:/net/slcai797.us.oracle.com/scratch/upatch/v2.17.0/lib/perl:/usr/local/bin/perl_5.6.1/lib/5.6.1/i686-linux:/usr/local/bin/perl_5.6.1/lib/5.6.1:/usr/local/bin/perl_5.6.1/lib/site_perl/5.6.1/i686-linux:/usr/local/bin/perl_5.6.1/lib/site_perl/5.6.1:/usr/local/bin/perl_5.6.1/lib/site_perl"
    echo "INSTANCE: $instance"
    ade useview $dvn << EOF > "$fprResult"
    cd /net/slcai797/scratch/upatch/LATEST/bin
    setenv LD_LIBRARY_PATH $libpath
    setenv PATH "${PATH}:${perlp}"
    #printenv | grep PATH
    #printenv | grep LIB
    perl -w /net/slcai797/scratch/upatch/LATEST/bin/uPatchSubmit -INSTANCE=slc09xhz.us.oracle.com:1609/prtr11db -ADE_VIEW_ROOT=$AVR -WAIT_FOR_COMPLETE=N | tee $fprResult
    EOF

【问题讨论】:

  • ade 对 HERE 文档有什么作用?
  • 似乎是一个需要 tty 的问题。

标签: shell perl unix


【解决方案1】:

在不知道你的脚本细节的情况下,我猜你需要换行:

...
ade useview $dvn << EOF > "$fprResult"   #<-- you setup $fprResult by redirecting
...
perl ...
EOF  # <-- up to here goes in that file, that includes the perl call also

我认为你需要:

ade useview $dvn << EOF > "$fprResult"
...
EOF
perl -w /net/slcai797/scratch/upatch/LATEST/bin/uPatchSubmit -INSTANCE=slc09xhz.us.oracle.com:1609/prtr11db -ADE_VIEW_ROOT=$AVR -WAIT_FOR_COMPLETE=N | tee $fprResult

【讨论】:

    猜你喜欢
    • 2011-05-01
    • 1970-01-01
    • 2021-05-11
    • 2012-04-15
    • 1970-01-01
    • 2021-12-23
    • 2014-08-28
    • 2014-09-29
    • 2010-12-06
    相关资源
    最近更新 更多