我正在用bash做一个页面生成器。当检查参数$2作为我正在生成的页面的标题时,它什么也找不到,并回显"No title supplied...“线路。
下面是包含$2的代码片段:
header() {
echo "<!DOCTYPE html>" > $filename.html
echo "<html>" >> $filename.html
echo "<head>" >> $filename.html
if [ -z "$2" ]; then
echo "No title supplied. Using name of the file."
echo " <title>$filename</title>" >> $filename.html
else
echo " <title>$2</title>" >> $filename.html
fi
echo " <link rel=\"stylesheet\" href=\"styles.css\">" >> $filename.html
echo "</head>" >> $filename.html
echo "<body>" >> $filename.html
echo "" >> $filename.html
}下面是完整脚本的链接:https://ghostbin.co/paste/p8qpx
发布于 2020-04-21 22:42:17
在函数内部,$2引用该函数的第二个参数,而不是整个脚本。因此在调用header时必须将其作为参数进行传递
像这样
header "$2"然后,在你的函数内部,它将是$1,因为它将是该函数调用的第一个参数。
https://stackoverflow.com/questions/61346154
复制相似问题