Mam tę funkcję w skrypcie basha, aby utworzyć nowy wpis jekyll; ale zwraca argument, ponieważ nie znaleziono polecenia. Oto scenariusz:Argument funkcji Basha zwraca błąd "polecenie nie znaleziono"
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'
}
Ale gdy próbuję go uruchomić zwraca:
$>new_post "Hello World"
-bash: Hello World: command not found
Wydaje się być trudny do uruchomienia argumentu jako polecenia.
Próbowałem nawet to i dostał ten sam rezultat
$>TITLE= "Hello World" && echo -e ---layout: post\ntitle: "$TITLE"\n---
-bash: Hello World: command not found
Czy ktoś może mi powiedzieć co robię źle?
pewno jest. 'VAR = VALUE PROGRAM' definiuje zmienną' VAR' tylko dla środowiska 'PROGRAM'. W przypadku OP powłoka interpretuje '' $ 1 "' jako polecenie, a 'TITLE =' jako definicję (pustej) zmiennej środowiskowej dla niego. –