Tengo esta función en un script bash, para crear una nueva publicación jekyll; pero devuelve el argumento como comando no encontrado. Aquí está la secuencia de comandos:El argumento de la función Bash devuelve el error "comando no encontrado"
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'
}
Pero cada vez que intento ejecutarlo vuelve:
$>new_post "Hello World"
-bash: Hello World: command not found
Parece estar tratando de correr el argumento como un comando.
incluso intenté esto y tiene el mismo resultado
$>TITLE= "Hello World" && echo -e ---layout: post\ntitle: "$TITLE"\n---
-bash: Hello World: command not found
Alguien puede decirme lo que estoy haciendo mal?
Definitivamente es. 'VAR = VALUE PROGRAM' define una variable' VAR' para el entorno de 'PROGRAM' solamente. En el caso del OP, el shell interpreta '" $ 1 "' como un comando y 'TITLE =' como la definición de una variable de entorno (vacía) para él. –