标题:linux 执行shell 报错stty: standard input: Inappropriate ioctl for device解决
作者:lōττéry©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]
[root@bi-edw-011 scripts]# cat monitor.sh
echo `su - oracle <<EOF
export ORACLE_SID=biedwshoes
sqlplus -s /nolog
connect / as sysdba
echo `su - oracle <<EOF
export ORACLE_SID=biedwshoes
sqlplus -s /nolog
connect / as sysdba
set head off
select count(*) from u_cl_ctl.oth_etl_logs t
where t.update_time >= to_date(to_char(sysdate,'YYYYMMDD')||' 00:00:00','yyyy/mm/dd hh24:mi:ss')
and t.update_time <= to_date(to_char(sysdate,'YYYYMMDD')||' 09:00:00','yyyy/mm/dd hh24:mi:ss');
EXIT;
EOF`
[root@bi-edw-011 scripts]# sh monitor.sh
stty: standard input: Inappropriate ioctl for device
1
select count(*) from u_cl_ctl.oth_etl_logs t
where t.update_time >= to_date(to_char(sysdate,'YYYYMMDD')||' 00:00:00','yyyy/mm/dd hh24:mi:ss')
and t.update_time <= to_date(to_char(sysdate,'YYYYMMDD')||' 09:00:00','yyyy/mm/dd hh24:mi:ss');
EXIT;
EOF`
[root@bi-edw-011 scripts]# sh monitor.sh
stty: standard input: Inappropriate ioctl for device
1
[root@bi-edw-011 scripts]#
本环境的 解决方案
---> 由于之前有设置oracle .bash_profile变量文件
《stty erase ^H 》指sqlplus中执行输入sql 删除时默认需要按ctrl+backspace,如果加上该行注释,,可直接用backspace键删除
[root@bi-edw-011 ~]# grep stty /home/oracle/.bash_profile
stty erase ^H
[root@bi-edw-011 ~]#sed -i '/stty/d' /home/oracle/.bash_profile --->删除stty那行
stty erase ^H
[root@bi-edw-011 ~]#sed -i '/stty/d' /home/oracle/.bash_profile --->删除stty那行
[root@bi-edw-011 ~]# source /home/oracle/.bash_profile
[root@bi-edw-011 scripts]# sh monitor.sh
1
[root@bi-edw-011 scripts]#
1
[root@bi-edw-011 scripts]#
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28602568/viewspace-2092004/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28602568/viewspace-2092004/