我在bash脚本中创建了一个新的jekyll帖子;但它会返回参数作为未找到的命令。这里的脚本:Bash函数参数返回错误“未找到命令”
function new_post() {
if [ -z "$1" ]
then
read -p "Post Title:" TITLE
else
TITLE= "$1"
fi
FILE=$(echo $TITLE | tr A-Z a-z | tr ' ' _)
echo -e '---\nlayout: post\ntitle: '$TITLE'\npublished: false\n---\n' > $(date '+%Y-%m-%d-')"$FILE"'.md'
}
但每当我尝试运行它,它返回:
$>new_post "Hello World"
-bash: Hello World: command not found
这似乎是试图运行参数的命令。
我甚至尝试这样做,得到了相同的结果
$>TITLE= "Hello World" && echo -e ---layout: post\ntitle: "$TITLE"\n---
-bash: Hello World: command not found
谁能告诉我什么,我做错了什么?
肯定是。 'VAR = VALUE PROGRAM'只为'PROGRAM'的环境定义一个变量'VAR'。在OP的情况下,shell将''$ 1“'解释为命令,将'TITLE ='解释为它的(空)环境变量的定义。 –