您好我正在編寫一個小的shell腳本,它將從數據庫中的.ctl文件加載數據,但不應該在執行腳本後在屏幕上顯示輸出,因爲它很關鍵,只是想要確認這是否是正確與否:在shell腳本中運行sqlldr
#!/bin/ksh
Y=`sqlldr usr/[email protected] control = /work/ctlm/SCRIPTS/upload.ctl`
echo $Y > sqlldr_1
rm -rf sqlldr_1
您好我正在編寫一個小的shell腳本,它將從數據庫中的.ctl文件加載數據,但不應該在執行腳本後在屏幕上顯示輸出,因爲它很關鍵,只是想要確認這是否是正確與否:在shell腳本中運行sqlldr
#!/bin/ksh
Y=`sqlldr usr/[email protected] control = /work/ctlm/SCRIPTS/upload.ctl`
echo $Y > sqlldr_1
rm -rf sqlldr_1
在外殼的空間是用來分隔參數,圍繞=
刪除它們。 也使用變量$ Y的引號來保存格式(空格,換行符)。
#!/bin/ksh
Y=`sqlldr usr/[email protected] control=/work/ctlm/SCRIPTS/upload.ctl`
echo "$Y" > sqlldr_1
rm -rf sqlldr_1
如果你不希望任何輸出到屏幕上,然後使用重定向
例如,刪除輸出
sqlldr usr/[email protected] control=/work/ctlm/SCRIPTS/upload.ctl >/dev/null 2>&1
要創建2個文件out.log和err.log
sqlldr usr/[email protected] control=/work/ctlm/SCRIPTS/upload.ctl >out.log 2>err.log
fd 1是隱含的,>out.log
與1>out.log
相同可以在>
和文件名 之間添加空格,但文件描述符和>
之間不得有空格
是否有任何理由將輸出傳遞給變量,爲什麼不直接重定向。爲什麼要寫入一個文件,然後刪除它? –
執行腳本後,我不希望sqlldr的輸出顯示在屏幕上,我該怎麼辦? – User123
在屏幕上你有2個輸出流:標準輸出和標準錯誤,如果你不想輸出,使用重定向;我的回答中的例子 –