Tôi đã viết một đoạn script Bash trong Windows bằng Notepad ++.
cxStop ALLServiceOnSERVER.sh
#!/usr/bin/bash
cd "/some/path"
echo "Hi. Logs can be found at "`pwd`"/cxStartStopLogger.log"
echo "["`date`"]*** STOPPING ALL SERVICES ON SERVER ***" >> "cxStartStopLogger.log"
exit
Bây giờ sau khi tải nó lên và thiết lập các quyền tập tin cần thiết, tôi đã thử thực hiện nó như sau:
bash-3.00$ cat cxStopAllServicesOnSERVER.sh #Let's have a look at the code.
#!/usr/bin/bash
cd "/some/path/"
echo "Hi. Logs can be found at "`pwd`"/cxStartStopLogger.log"
echo "["`date`"]*** STOPPING ALL SERVICES ON SERVER ***" >> "cxStartStopLogger.log"
bash-3.00$ # Code and hashbang 'looks' correct,
bash-3.00$ # if there is any issue with the format (EOL characters and such)
bash-3.00$ # we cannot see it using cat.
bash-3.00$
bash-3.00$ sh cxStopAllServicesOnSERVER.sh
cxStopAllServicesOnSERVER.sh[2]: /some/path^M: not found
Hi. Logs can be found at /some/path/cxStartStopLogger.log
bash-3.00$ # Note that ^M appears at the end of the line.
bash-3.00$ bash -x cxStopAllServicesOnSERVER.sh
+ cd $'/some/path\r'
: No such file or directory1.sh: line 2: cd: /some/path
++ pwd
' echo 'Hi. Logs can be found at /some/path/cxStartStopLogger.log
Hi. Logs can be found at /some/path/cxStartStopLogger.log
++ date
+ echo '[Sun' Nov 18 00:28:17 EST '2012]*** STOPPING ALL SERVICES ON SERVER ***'
bash-3.00$ # Note that '\r' return character appears at the end of the line.
Vấn đề: Khi tôi thay đổi mã thành korn shell, tôi gặp phải vấn đề tương tự. Xuất hiện rằng một ký tự không chính xác sẽ được thêm vào cuối dòng.
LƯU Ý: Tôi tìm thấy giải pháp và đã đăng giống như một câu trả lời. Hãy cập nhật hoặc cải thiện nó để giúp những người mới bắt đầu có thể gặp phải vấn đề tương tự. Cảm ơn!
pico
, trình soạn thảo dòng lệnh, sẽ là giải pháp.