วันนี้ก็ได้ลอง syntax ของ shell script และหาข้อมูลเพิ่มเติมในการแก้ปัญหา ^M โดยใน VI จะมีคำสั่งที่แก้ได้ ดังนี้
ปัญหาที่พบในไฟล์ test1.sh[16]: ^M: not found.
- ที่มา: ^M คือ ตัวอักษรที่บอกว่าจบบรรทัดนี้แล้ว ซึ่งจะเป็นใน Text File ของระบบของ windows
- วิธีแก้: ใช้ VI ใน linux ดูจะช่วยได้ แก้ได้แล้ว โดยใช้ Expression: :1,$s/^M//g โดยที่ ^M เกิดจากการกด CTRL+V+M
จากนั้นก็ SAVE ตามปรกติ และลองนำมาเปิดดูใหม่ ก็จะดูได้โดยที่ไม่มีปัญหา และสามารถที่จะรัน script ได้อย่างถูกต้อง
อ้างอิง: http://linuxdemon.blogspot.com/2011/04/how-to-remove-control-m-characters-in.html
หลังจากนั้น ผมก็เริ่มนำสิ่งที่ได้ทำแยกไว้หลายๆส่งมาลองรวมเป็นไฟล์เดียวกัน ตั้งแต่ การหาวันที่, อ่านรายชื่อไฟล์, ย้ายไฟล์ไปยัง orapath(โพลเดอร์ที่ Oracle ยอมให้อ่านไฟล์), เรียกใช้ PL/SQL(อ่านไฟล์+Insert) ที่ได้เตรียมไว้ และก็ย้ายไฟล์ที่ทำเสร็จไปใน archive ซึ่งก็ได้ทำสำเร็จ และ script ดูทำงานได้อย่างถูกต้องแล้ว แต่ปัญหา คือ path ที่ทำนั้นเป็น path ที่ได้จำลองมาจาก server จริง จึงไม่สามารถที่ทำงานในส่วน PL/SQL ได้ ผมจึงต้องมาหาทางปรับเปลี่ยนให้อ่านไฟล์ใน Shell Script และส่งเป็นค่า Parameter ไปแทน ซึ่งจะมาทำต่อในวันรุ่งขึ้น
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.