我正在尝试使用以下脚本创建文件(请参阅下文)。虽然脚本运行没有错误(至少根据shellcheck),但是我无法使得到的文件具有正确的名称。
fs.appendFileSync
bash很新,所以我不太确定我做错了什么......
答案 0 :(得分:1)
最明显的错误是:
title=$("$title" | "awk {print tolower($0)}")
出于以下几个原因,这是错误的:
"$title"
作为命令运行 - 这意味着它会查找以您要运行的博客文章标题命名的命令 - 并管理该命令的输出(可能赢得的命令&#39) ; t存在)到awk
。/usr/bin/awk {print tolower(bash-)}
的命令(如果$0
评估为bash-
,它将在交互式解释器;行为在其他地方会有所不同)。$0
会被评估到shell而不是awk。更好的替代方案可能如下:
title=$(awk '{print tolower($0)}' <<<"$title")
...或者,使用更简单的工具:
title=$(tr '[:upper:]' '[:lower:]' <<<"$title")
...或者,使用bash 4.x内置功能:
title=${title,,}
当然,所有假设title
都设置为开头。如果您没有在环境中传递它,那么您的脚本可能需要title=$1
而不是title="$title"
。