script redirect linux windows file output input error
บ่อยครั้งที่เรามักจะต้องการบันทึกผลรันของคำสั่งในไฟล์เพื่อเราจะได้ตรวจสอบความถูกต้องได้ โดยเฉพาะถ้าหากว่าผลรันของคำสั่งยาวมาก เราคงไม่อยากจะใช้เมาส์ดูจากหน้าต่างที่เรารันคำสั่ง
ถ้าหากว่าเราใช้ระบบปฏิบัิติการที่เป็น unix/linux
command > output_file
command >& output_and_error_file
command < input_file
ถ้าหากว่าเราใช้ระบบปฏิบัติการที่เป็น windows
command > output_file
command > output_and_error_file 2>&1
command < input_file
ถ้าหากว่าต้องการจะให้ผลรันบันทึกต่อจากไฟล์เดิมที่มีอยู่แล้ว ให้เปลี่ยนจากใช้ > เป็น >>
output_file เป็นไฟล์ที่จะเก็บเฉพาะที่ได้จาก standard output
ส่วน output_and_error_file เป็นไฟล์ที่จะเก็บทั้งจาก standard output และ standard error
2>&1 บน shell หลังคำสั่ง command
สำหรับ Linux ก็สามารถใช้งานได้เหมือนกัน และมีความหมายเดียวกันครับ คือ ให้เอาผลลัพธ์ที่ส่งออกทาง standard error ซึ่งโดยทั่วไป จะใช้สำหรับ error message แต่ในหลายกรณี ก็ใช้สำหรับกรณีที่ต้องการ แยก message ออกจาก output ปกติ ให้ส่งไปทาง standard output ด้วย ทำให้ทั้งหมด สามารถ redirection ลงไปที่ไฟล์ ในคราวเดียวกันได้
สำหรับการใช้งานบน command line ซึ่งในบางครั้ง บางกรณี เป็นส่วนของการจัดการกับระบบ ซึ่งไม่สามารถทำย้อนกลับได้ วิธีการหนึ่ง ซึ่งช่วยในการ บันทึกคำสั่งที่ใช้ และ output ที่ได้จากคำสั่งนั้นๆ ก็คือ ใช้โปรแกรมที่ชื่อว่า script ครับ
วิธีการใช้ เริ่มจากเรียกใช้โปรแกรม script บน command line ซึ่งมันจะสร้างไฟล์ที่ชื่อ typescript ขึ้นมาและบันทึก ทุกคำสั่งที่พิมพ์บน command line และ output ที่ได้ เก็บไว้ในไฟล์นี้ จนกระทั่งเราใช้คำสั่ง exit หรือ กด Control-D ออกจาก shell ที่ start ดดยใช้คำสั่ง script นั้น
ยังมีรายละเอียด และ trick ในการใช้งานอีกพอสมควร ลองอ่านจาก man page ของ script ดูครับ
ผมไม่แน่ใจเหมือนกันว่า ถ้าติดตั้ง cygwin บน Windows แล้วจะมี script ให้ใช้หรือ เปล่า ... น่าจะมีแต่ยังไม่ได้ลองครับ
คือ ลองใช้
>>&
แล้วไม่ได้อะคับ >_<