/ / zapisz plik tekstowy w zmiennej w bash - linux, bash, shell, terminal

zapisz plik tekstowy w zmiennej w bash - linux, bash, shell, terminal

jak mogę odczytać plik tekstowy i zapisać go do zmiennej w bashu? mój kod jest tutaj:

#!/bin/bash
TEXT="dummy"
echo "Please, enter your project name"
read PROJECT_NAME
mkdir $PROJECT_NAME
cp -r -f /home/reza/Templates/Template Project/* $PROJECT_NAME
cd $PROJECT_NAME/Latest
TEXT = `cat configure.ac `  ## problem is here   !!!
CHANGED_TEXT=${TEXT//ProjectName/$PROJECT_NAME}
echo $CHANGED_TEXT

Odpowiedzi:

14 dla odpowiedzi № 1

Problem polega na tym, że masz dodatkową przestrzeń. Przypisanie wymaga zerowych spacji między = operator. Jednak z bash możesz użyć:

TEXT=$(<configure.ac)

Będziesz także chciał się upewnić, że cytujesz swoje zmienne, aby zachować nowe linie

CHANGED_TEXT="${TEXT//ProjectName/$PROJECT_NAME}"
echo "$CHANGED_TEXT"

3 dla odpowiedzi № 2

Próbować

TEXT=`cat configure.ac`

To powinno działać.

Edytować:

Aby wyjaśnić, różnica polega na odstępach: wprowadzenie spacji po TEXT powoduje, że bash próbuje sprawdzić to jako polecenie.


1 dla odpowiedzi nr 3

Aby wykonać polecenie i zwrócić wynikskrypt bash dla zapisu w zmiennej, na przykład, musisz napisać polecenie inner do var = $ (command). I nie wolno podawać spacji między var, "=" i $ (). Spójrz na to

TEXT=$("cat configure.ac")

Teraz, echo $TEXT zwróć zawartość przez plik configure.ac.