2016-07-28 16 views
2

Ich habe die Eingabe vom Benutzer in Array genommen. Aber ich muss sie als kommagetrennte Liste verwenden. Wie kann ich das machen? Die Eingabe in meinem Fall ist Pfad wie (/ usr/tmp /). Ich schätze deine Hilfe und Zeit. Vielen Dank !Speichern Array-Ausgabe in kommagetrennte Liste in Bash-Scripting

Beispiel:

read "Number of subdirectories : " count 
for i in $(seq 1 $count) 
do 
    read -e -p " Subdir : $i: " arr[$i] 
done 

Erwartetes Ergebnis:

$var = {arr[1],arr[2],arr[3],......} 

Antwort

3

Wenn Sie ein Array wie folgt:

$ declare -p arr 
declare -a arr='([1]="abc" [2]="def")' 

Sie können angezeigt werden in kommagetrennte Format:

$ (IFS=,; echo "{${arr[*]}}") 
{abc,def} 

Das Ausgangssignal kann in einem Shell-Variable Befehlssubstitutions gespeichert werden:

$ var=$(IFS=,; echo "{${arr[*]}}") 
$ echo "$var" 
{abc,def} 
+0

Dank @John. Ich habe es versucht, aber es funktioniert nicht. Ich habe einen Fehler wie Nein solche Datei oder Verzeichnis. – Rock26

+0

@ Rock26 Welcher Befehl hat einen Fehler verursacht? Bitte lassen Sie mich auch die vollständige genaue Fehlermeldung sehen. (Geben Sie nicht erneut ein: Kopieren und fügen Sie es von Ihrem Terminal hierher ein.) – John1024

+0

Sicher ../ count_lines.sh: Zeile 22: = {plugme/web /, plugme/modules /}: Keine solche Datei oder kein Verzeichnis – Rock26

Verwandte Themen