2011-12-27 25 views
11

Bash Script için yeni. Böyle Ubuntu Aşağıdaki basit komut dosyasını çalıştırın:Bash betiği Ubuntu Bash tarafından anlaşılmadı

sudo bash -x Script.sh 

Çıktı:

+ $'\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' 

gerçek senaryo: Bütün bu '\r' hata iletileri

#!/bin/bash 

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


adminEmail="[email protected]" 

echo "database name:" 
read dbname 

geliyor ne olacak? Açıklamalar bile anlaşılmamış gibi görünüyor ...

+0

Satır sonları ile ilgili bir sorun var gibi görünüyor, ama Bunu düzeltmek için nasıl bilmiyorum ... Bana uyar – evotopid

+0

... Arch Linux i686 – Paul

+1

Komut satırından do 'dos2unix scriptname scriptname'. \ '\ r \\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ –

cevap

10

Dosya bir Windows makinesi üzerinden indirildi ve sizde CRLF satır sonu var (bu, C içinde \r\n ve ilgili diller).

DOS satırı sonlarını kaldırın. Örneğin, dosyayı vim'da düzenleyin ve biçimi :set fileformat=unix (artı Dönüş) ile değiştirin ve sonra dosyayı geri yazın. Alternatif teknikler, mevcut olana bağlı olarak tr komutunu veya dos2unix veya dtou'u kullanabilir. Eğer olarak kaydedin Eğer (örneğin Linux üzerinde pencerelerde \r\n vs \n)

sabit satır-sonları alırsınız

1

Kes ve sizin Ubuntu üzerinde bir editör içine bu sayfadan yapıştırın yeni dosya Eminim iyi çalışır.

1

Dosyada fazladan yazdırılamayan bazı karakterler var gibi görünüyor. Vi/Vim
Dosya aç:
basın [ESC] Basitçe

dos2unix scriptname 

do ardından :set list

+0

Ve listelenen karakterleri aldıktan sonra, bunları kaldırmak için nasıl giderdiniz? StackOverflow'a hoş geldiniz. Cevabınız doğru hatlarda çok fazla ama henüz tamamlanmadı. –

11

yazın komut moduna
içine almak ve senaryoyu yürütmek için.

Araca sahip değilseniz, yüklemek için aşağıdakileri yapabilirsiniz.

sudo apt-get install dos2unix 

VEYA aşağıdaki komut satırı dosyayı dönüştürmek için kesmek yapın.

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

VEYA

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

Çok Teşekkürler .... – Houman