我想编写一个bash脚本,对所有参数都有很好的评论。
#!/bin/bash
command \
# this is important because ..
-flag arg \
# this is also important b/c ..
--other-option \
# etc..
反斜杠只会在注释之前转义换行符,因此-flag arg
被视为新命令。
答案 0 :(得分:3)
您正在寻找的是#34;内联评论"。您可以使用反引号(`)来模仿这些,并使用斜杠(\)结束该行,如下所示:
echo \
`# this is a comment` \
-e 'duuuuddddee!!!'
如评论中所述,此解决方案存在一些开销
答案 1 :(得分:3)
mattyice有一个很好的建议。
另一种方法是将命令粘贴在数组中以减少注释的噪声开销。这也允许以这样的方式打印命令:它可以很容易地在脚本之外重新发布:
cmd=(
tar
# Extract a named, gzipped file
xzf "$file"
# Ignore the leading directory
--strip-components=1
)
# Optionally print the command in copy-pasteable format
echo "Executing: "
printf "%q " "${cmd[@]}"
echo
# Execute the command:
"${cmd[@]}"
任何管道或重定向都会在执行行上,而不是在数组中。