<offtopic> Manchmal muss man eine Frage formulieren um selbst das Brett vorm Kopf weg zu bekommen. Mal sehen, ob das heute auch der Fall ist. </offtopic>
Ich schreibe gerade ein Skript, dass bei den Schriftarten aufräumen soll (tut es auch); hier nur der relevante Auszug zum Problem:
1 2 3 4 5 | #!/bin/bash tmpdir=$(mktemp -d) lang1=$(echo "$LANGUAGE" | cut -d_ -f1) comm -13 <(fc-list :lang="$lang1" | sort) <(fc-list | sort) | cut -d: -f1 > "$tmpdir/ungewollte_schriften1" dpkg -S $(cat "$tmpdir/ungewollte_schriften1") 2> "$tmpdir/schriften_ohne_paket" | sort > "$tmpdir/ungewollte_schriften1-pakete" |
Wenn ich nun shellcheck das prüfen lasse, erhalte ich folgende Ausgabe:
1 2 3 4 5 6 7 | fleet@street ~ $ shellcheck /tmp/ungewollte_schriften In /tmp/ungewollte_schriften line 5: dpkg -S $(cat "$tmpdir/ungewollte_schriften1") 2> "$tmpdir/schriften_ohne_paket" | sort > "$tmpdir/ungewollte_schriften1-pakete" ^-- SC2046: Quote this to prevent word splitting. fleet@street ~ $ |
Ich sollte also das $(…) quoten, aber das würde sich mit den bereits vorhandenen Quotes beißen:
dpkg -S "$(cat "$tmpdir/ungewollte_schriften1")" 2> "$tmpdir/schriften_ohne_paket" | sort > "$tmpdir/ungewollte_schriften1-pakete"
und es führt dazu, dass das Skript nicht mehr läuft. Wie müsste ich das anders formulieren?
<offtopic>Mal sehen, wer schneller das Brett weg bekommt. 😉 </offtopic>