Ho questa funzione in uno script bash, per creare un nuovo post jekyll; ma restituisce l'argomento come comando non trovato. Ecco lo script:L'argomento della funzione Bash restituisce l'errore "comando non trovato"
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'
}
Ma ogni volta che provo a farlo funzionare ritorna:
$>new_post "Hello World"
-bash: Hello World: command not found
Sembra essere il tentativo di eseguire l'argomento come un comando.
Ho anche provato questo e ha ottenuto lo stesso risultato
$>TITLE= "Hello World" && echo -e ---layout: post\ntitle: "$TITLE"\n---
-bash: Hello World: command not found
Qualcuno può dirmi che cosa sto facendo male?
Definitivamente lo è. 'VAR = VALUE PROGRAM' definisce una variabile' VAR' solo per l'ambiente di 'PROGRAM'. Nel caso dell'OP la shell interpreta '" $ 1 "' come comando e 'TITLE =' come la definizione di una variabile di ambiente (vuota) per esso. –