【发布时间】:2016-04-23 05:52:56
【问题描述】:
我有一个字符串数组,我想打印一个用于测试我的 C 程序的 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 有效。对于这个问题,stackover flow 的适当行动方案是什么。删除问题或回答问题并提供建议,说明现在语法正确后它为什么会起作用会更好吗?
标签: bash testing split printf echo