Ich habe ein Array von Zeichenfolgen, die ich für ein Bash-Skript, das meine C-Programme testet, drucken möchte. Die Arrays Inhalte sind wie folgt aus:Teil einer Zeichenfolge aus einer Variablen in Bash mit einem Schrägstrich entfernen
PASSED TESTS: (4)
✓ tests/test_sample_one.in
✓ tests/test_sample_two.in
✓ tests/test_sample_three.in
✓ tests/test_sample_four.in
ich aber möchte es wie folgt ausdrucken:
PASSED TESTS: (4)
✓ test_sample_one
✓ test_sample_two
✓ test_sample_three
✓ test_sample_four
Hier ist der Teil des Codes, die ich zum Ausdrucken der Ergebnisse geschrieben habe. Ich denke, das ist alles, was relevant ist, aber ich kann weiteren Code auf Anfrage posten.
Ich habe erfolgreich die Linie i=${i%.*}
die .in
am Ende zu entfernen, aber die Linie i=${i#*/ }
scheint nicht vor den /
bei Entfernen der Zeichen zu arbeiten.
printf "PASSED TESTS: ($passed_tests)\n\n"
for i in "${passed_tests_arr[@]}"
do
printf "✓ "
i=${i%.*}
i=${i#*/ }
echo "$i"
done
Sie in Ihnen Skript leer bekam, den Rohling entfernen wird den Job $ do {i # * /} – sigmalha
@sigmalha, die funktionierte. Was wäre die geeignete Vorgehensweise für Stackover-Flow für diese Frage. Wäre es besser, die Frage zu löschen oder die Frage mit einem Hinweis zu beantworten, warum es jetzt funktionieren würde, wenn die Syntax korrekt ist? – joshuatvernon