有人可以解释一下如何测试一个bash shell脚本吗?
比如说,我有一个包含以下代码的.sh文件...
#!/bin/sh
for file in *.txt; do
mv "$file" "`basename $file .txt`.doc"
done
我该如何编写测试?就像在Java中一样,你可以编写类似于assertEquals的代码来测试代码是否产生所需的输出。
试着用这个:assert.sh
source "./assert.sh"
local expected actual
expected="Hello"
actual="World!"
assert_eq "$expected" "$actual" "not equivalent!"
# => x Hello == World :: not equivalent!
在Bash中,您可以使用断言。请参考《高级Bash脚本指南》中的以下内容:
mv
前面添加echo
,以验证是否创建了正确的命令(对于可能难以撤销的更改始终是个好主意)。
mv "$file" "$(basename "$file" .txt).doc"
或者mv "$file" "${file%*.txt}.doc"
。 - Dennis Williamson