ปัญหาที่พบเจอ

มี shell script บางตัวที่ทำการ run แล้วจะเจอ error ดังนี้

env: bash\r: No such file or directory

จะทำการแก้ไขอย่างไรดี ?

ก่อนอื่นต้องทำความเข้าใจปัญหาก่อนว่า
มันคืออะไรกันแน่ มิเช่นนั้นไม่น่าจะหาวิธีแก้ไขได้

จาก error message นั้น บอกว่าในไฟล์ของเรานั้นมีอักขระพิเศษคือ \r
ซึ่งโดยปกติแล้วจะเพิ่มเข้ามาสำหรับ การบอกสิ้นสุดบรรทัดใน Windows OS (\r\n)
ดังนั้นก็น่าจะพอเดาได้ว่า
ไฟล์ที่ได้รับมานั้น น่าจะถูกเปิดและแก้ไขบน Windows OS มาก่อน
เมื่อนำไฟล์มา run บน OS อื่นๆ เช่น Linux และ Mac OS จึงเกิดปัญหาขึ้น

ดังนั้นการแก้ไขปัญหาที่ง่ายที่สุดคือ การลบ \r ออกไปซะ
ด้วยคำสั่งง่าย ๆ ดังนี้

$sed $'s/\r$//' ./source-file > ./target-file

หรือถ้าใช้งานผ่าน Git แล้วก็ไปกำหนดให้ใช้รูปแบบของ Unix ซะดังนี้

$git config --global core.autocrlf false

เพียงเท่านี้ปัญหาก็จะหมดไป

Reference Website
https://stackoverflow.com/questions/29045140/env-bash-r-no-such-file-or-directory