bash: read -a fehler

N

noskule

Grünschnabel
Hallo Zusammen.
Ich hab ein Shell-Script das ich meinem alten Server (centos) funktioniert, aber auf meinem neuen ubuntuserver 8.04 nicht mehr.

wenn ichs auf dem neuen server laufenlasse bekomme ich den fehler:
Code:
read: 160: Illegal option -a

Hat jemand ne ahung was das problem ist? Hier die Funktion wo der Fehler passiert:
Code:
AbgleichProzess()
{
exec 3<&0
exec 0<$FILE

while read -a a line; do 
if [[ ! ${a[0]} = \#* && ${a[0]} ]]; then
	package_check=${a[0]}
	file_name_installation=${a[1]}
	file_location_package=${a[2]}
	file_name_package=${a[3]}

	if [[ ! $file_name_package ]]; then
		file_name_package=$file_name_installation
	fi

	if [[ $package_check == $1 ]]; then
		DateiAbgleich $path_packages $path_installation $1 $file_name_package $file_name_installation $file_location_package
	fi

fi
done

exec 0<&3
}

Die Datei die ich auslese sieht in etwa so aus:
Code:
## Main
cms	Main.GroupConfig		/pub/netstreams/wikilib.d/

in der alten bash version war -a:
Code:
-A action
    The action may be one of the following to generate a list of possible completions:
          alias   Alias names.  May also be specified as -a.

Auf dem ubuntu server gibts keine man page und -help bringt nur:
Code:
read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...]

Bash wos funktioniert (centos):
Code:
bash, version 3.2.25(1)-release-(i686-redhat-linux-gnu)
Bash wos nicht funktioniert ubuntu 8.04:
Code:
bash, version 3.2.39(1)-release-(x86_64-pc-linux-gnu)

~nos
 
Zuletzt bearbeitet:
fehler gefunden

Es scheint das dies ein Fehler in ubuntu ist. Habs jetzt auf Debian testing und anderen Distros getestet und das Script funktioniert überall.
 
ich denke nicht das es an ubuntu liegt :> ... sondern eher an der bash version ;)
 
foexle wenn du read -a VAR extra schreibst und dann die VAR in der schleife ausliest funktioniert auch nicht?
 
Hi,

ich habe fast die selbe bash Version (version 3.2.39(1)-release (i486-pc-linux-gnu)) unter Kubuntu 8.04, und "read -a foo" funktioniert prima. Wenn das bei dir nicht geht, wuerd ich auch auf einen Bug tippen.

Auf dem ubuntu server gibts keine man page und -help bringt nur:
Meinst du auf dem server sind keine manpages installiert, oder dass "man read" keine manpage findet? read ist ein bash-builtin, d.h. wenn du etwas ueber read lesen moechtest, musst du natuerlich "man bash-builtins" benutzen (oder direkt "man bash").

mfg,
bytepool
 

Ähnliche Themen

NAS-Drive Mount in Bash-Script über crontab

script sshpass

Verschlüsseltes Backup-Script mit rsync

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Crontab und Scripts - Problem

Zurück
Oben