今天测试一个脚本,有的server上面会提示:
stty: standard input: Inappropriate ioctl for device
网上找了一下,是 /home/oracle/.bash_profile 的设置不同。
原址如下:
https://iter01.com/282019.html
[root@bi-edw-011 scripts]# cat monitor.sh
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
[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那行
[root@bi-edw-011 ~]# source /home/oracle/.bash_profile
[root@bi-edw-011 scripts]# sh monitor.sh
1
[root@bi-edw-011 scripts]#