我有一個字符串數組,我想打印一個用於測試我的C程序的bash腳本。該陣列內容是這樣的:從包含正斜槓的bash中的變量中刪除字符串的一部分
PASSED TESTS: (4)
✓ tests/test_sample_one.in
✓ tests/test_sample_two.in
✓ tests/test_sample_three.in
✓ tests/test_sample_four.in
但是我想它打印出來是這樣的:
PASSED TESTS: (4)
✓ test_sample_one
✓ test_sample_two
✓ test_sample_three
✓ test_sample_four
這裏是我打印出來的結果編寫的代碼的一部分。我認爲這些都是相關的,但我可以根據要求發佈更多代碼。
我已經成功地使用了線i=${i%.*}
刪除就完了.in
但行i=${i#*/ }
似乎並不在/
之前刪除的文字工作。
printf "PASSED TESTS: ($passed_tests)\n\n"
for i in "${passed_tests_arr[@]}"
do
printf "✓ "
i=${i%.*}
i=${i#*/ }
echo "$i"
done
你有你的腳本空白矮一點,刪除空白將做的工作$ {I#* /} – sigmalha
@sigmalha奏效。對於這個問題,堆棧流程的適當方法是什麼?如果刪除問題或回答問題並提供建議,說明爲什麼現在的語法是正確的,它會更好嗎? – joshuatvernon