Bash函数参数返回错误"未找到命令"

JKi*_*rtz 9 bash shell .bash-profile bash-function

我在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'
 }
Run Code Online (Sandbox Code Playgroud)

但每当我尝试运行它时,它返回:

$>new_post "Hello World"
-bash: Hello World: command not found
Run Code Online (Sandbox Code Playgroud)

它似乎试图将参数作为命令运行.

我甚至试过这个并得到了相同的结果

$>TITLE= "Hello World" && echo -e ---layout: post\ntitle: "$TITLE"\n--- 
-bash: Hello World: command not found
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?

phs*_*sym 16

它可能是TITLE= "$1"导致错误的空间.试试吧TITLE="$1"

  • 绝对是.`VAR = VALUE PROGRAM`仅为`PROGRAM`的环境定义变量`VAR`.在OP的情况下,shell将`"$ 1"`解释为命令,将`TITLE =`解释为(空)环境变量的定义. (4认同)