Ubuntu Bash不理解Bash脚本

Hou*_*man 10 bash ubuntu

我是Bash Script的新手.我在Ubuntu中运行以下简单脚本,如下所示:

sudo bash -x Script.sh
Run Code Online (Sandbox Code Playgroud)

输出:

+ $'\r'
: command not found
+ $'\r'
: command not found
+ $'\r'
: command not found
+ adminEmail=$'info@domain.com\r'
+ $'\r'
: command not found
' echo 'database name:
database name:
+ read $'dbname\r'
Run Code Online (Sandbox Code Playgroud)

实际的脚本:

#!/bin/bash

# Installation script for latest Wordpress website on Ubuntu
# 
# Kave
# December 27, 2011


adminEmail="info@domain.com"

echo "database name:"
read dbname
Run Code Online (Sandbox Code Playgroud)

这些'\r'错误消息会出现什么?甚至评论似乎都不被理解......

jay*_*ngh 12

简单地做

dos2unix scriptname
Run Code Online (Sandbox Code Playgroud)

并执行你的脚本.

如果您没有该工具,可以执行以下操作来安装它.

sudo apt-get install dos2unix
Run Code Online (Sandbox Code Playgroud)

要么

执行以下命令行黑客转换文件.

tr -d '\015' < scriptname > scriptname.new
Run Code Online (Sandbox Code Playgroud)

要么

sed -i 's/\x0D$//' scriptname
Run Code Online (Sandbox Code Playgroud)


Jon*_*ler 9

您通过Windows机器下载了该文件,并且您有CRLF行结尾(使用\r\nC语言和相关语言).

删除DOS行结尾.例如,编辑文件vim并使用:set fileformat=unix(加号Return)更改格式,然后将文件写回.替代技术可以使用tr命令,dos2unix或者dtou,取决于可用的命令.