作者sanbis (方正)
看板Linux
标题[问题] bash 空白行导致 command not found
时间Fri Nov 13 10:42:24 2020
目前 TEST.sh 的内容如下
#!/bin/bash
WORKDIR=backup
echo $WORKDIR
echo "备份程序"
echo "根目录"
但是在执行 sh TEST.sh 後输出的结果为
: command not found
backup
备份程序
: command not found
根目录
中间为了格式打上去的空行被当成无效指令
导致输出 : command not found
想请问一下有没有人遇过这种情况
以及这个要怎麽处理?
--
『老板你好 我是国立的』
『老板你好 我是私立的』 『脑~~~~~~~板~~~~~~』 Amy!
◢ ◣有消息会跟你联络 ◢ ◣有消息会跟你联络 ◢ ◣给她个私人秘书职位
◤ ◥ ◥ ◢ ◤◥ ◥ ◢ ◥◢ ◣ 国立
-○=○- ◤ -□=□- ◤ ◥● ●● ◤ ◥ 私立
◥ ◤ ︶ ◥ ◤ ︶ ● ▼◤ ● ) 尬不过
◢ ◥◣╱
◥ -? ◢ ◣◣╱
◥ - ◢ )●) ▼ ◤ 两粒
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.125.62.244 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1605235346.A.2CC.html
1F:→ bitlife: 先检查是否有全形空白 11/13 10:49
2F:→ tomsawyer: windows换行? 11/13 15:01
3F:推 HMKRL: 应该是有不是空白的东西混进去 11/14 00:23
4F:嘘 LinBuoRen: dos2unix 11/14 07:21
5F:→ newversion: xxd TEST.sh 赔上来看看 11/14 12:14
6F:推 ucrxzero: Backup被当成指令了啦 11/14 13:36
8F:推 ucrxzero: 你bash是不是连到dash 11/15 02:18
9F:推 holishing: set -x 追追看? 11/15 19:06
10F:→ holishing: 然後在之前不管有没有 dos 换行都先 dos2unix 11/15 19:07
问题已解决
目前查到的说法是 Windows 的换行是 \r\n
Linux 的换行是 \n
解决的方法有~
1.dos2unix
问题是这个主机上没有安装 dos2unix ~Orz
2.改用 vim 编辑
并设定 :set ff=unix
※ 编辑: sanbis (59.125.62.244 台湾), 11/16/2020 09:18:41
11F:→ Bellkna: sed应该也可以处理这个 11/16 19:23
12F:推 Gold740716: sed 's/\r$//' 11/17 12:27