我在bash脚本中有这个功能,用来创建一个新的jekyll帖子;但它返回参数作为未找到的命令。这是脚本:
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
有谁能告诉我我做错了什么?
答案 0 :(得分:15)
TITLE= "$1"
中的空格可能会导致错误。试试TITLE="$1"
答案 1 :(得分:0)
就我而言:
echo "Deploy of `$1` to `$2` project? (Y/N)"
这个问题也存在。当我删除[``]时它已经消失了。不确定你是否粘贴了一个完整的脚本,但要注意args的双引号。