2011-12-27 6 views
11

Bash Scriptを初めて使用しています。私はこのようなUbuntuのでは、次の簡単なスクリプトを実行します。Ubuntu Bashが理解できないBashスクリプト

sudo bash -x Script.sh 

出力:

+ $'\r' 
: command not found 
+ $'\r' 
: command not found 
+ $'\r' 
: command not found 
+ adminEmail=$'[email protected]\r' 
+ $'\r' 
: command not found 
' echo 'database name: 
database name: 
+ read $'dbname\r' 

実際のスクリプト:すべてのこれらの'\r'のエラーメッセージが

#!/bin/bash 

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


adminEmail="[email protected]" 

echo "database name:" 
read dbname 

を予定されていますか?コメントでさえ理解されていないようです...

+0

あなたは行末に問題があるように見えますが、私はこの問題を解決する方法がわからない...それは私の作品 – evotopid

+0

...アーチLinux i686 – Paul

+1

コマンドラインから 'dos2unix scriptname scriptname'を実行します。 '\ r'は改行で、Windowsマシン上でファイルを作成してLinuxに送りましたか? –

答えて

10

ファイルをWindowsマシンでダウンロードし、CRLFの行末(Cおよび関連言語では\r\n)があります。

DOS行の末尾を削除します。たとえば、vimのファイルを編集し、:set fileformat=unix(さらにReturn)の形式を変更して、ファイルを書き戻します。代替技術では、trコマンド、または利用可能な内容に応じてdos2unixまたはdtouコマンドを使用できます。あなたのようにそれを保存する場合は(例えば、Linux上でWindows上で\r\n\n

を固定あなたの行末を取得しますので、

1

カットや、あなたのUbuntu上のエディタに、このページからあなたのコードを貼り付け新しいファイル私はそれがうまくいくと確信しています。

1

ファイルに余分な印刷不可能な文字があるように聞こえます。 VI/Vimの中
ファイルを開く:
プレス[ESC]は単に

dos2unix scriptname 

を行い、その後:set list

+0

そして、あなたが文字をリストアップしたら、どうやってそれらを取り除くのですか? StackOverflowへようこそ。あなたの答えは非常に正しい行にありますが、まだ完全ではありません。 –

11

を入力し、コマンドモード
に入ると、あなたのスクリプトを実行します。

ツールをお持ちでない場合は、次の手順でインストールしてください。

sudo apt-get install dos2unix 

OR

次のコマンドラインを実行し、ファイルを変換するためにハッキング。

tr -d '\015' <scriptname> scriptname.new 

OR

sed -i 's/\x0D$//' scriptname 
+0

多くのありがとう.... – Houman