Bash에서 파일에 변수를 추가하는 것이 작동하지 않습니다.

Bash에서 파일에 변수를 추가하는 것이 작동하지 않습니다.

나는 이런 코드를 가지고있다

#! /bin/bash

$version = "1.0";
$preffix = "ApplicationName.";

for f in pack*;
do
    echo "bla bla bla" > myFile.txt
    echo $preffix >> myFile.txt
    echo "more stuff" >> myFile.txt
    echo $version >> myFile.txt
done;

출력은 다음과 같습니다

bla bla bla

more stuff

$version 및 $prefix가 myFile.txt에 추가되지 않습니다...왜죠?

답변1

이 프로그램은 귀하의 프로그램이 다음과 같은 기능을 수행하지 않는 곳에서 작동합니다.

#!/bin/bash

version="1.0";
preffix="ApplicationName.";

for f in pack*;
do
    echo "bla bla bla" > myFile.txt
    echo $preffix >> myFile.txt
    echo "more stuff" >> myFile.txt
    echo $version >> myFile.txt
done;

공간에 대한 사랑은 프로그램을 더 읽기 쉽게 만들지만 동시에 실행 불가능하게 만듭니다.

또한 이 프로그램에서는 이것이 중요하지는 않지만 다음을 수행하는 것이 좋습니다.

#!/bin/bash

version="1.0";
preffix="ApplicationName.";

for f in pack*;
do
    echo "bla bla bla" > myFile.txt
    echo "$preffix" >> myFile.txt
    echo "more stuff" >> myFile.txt
    echo "$version" >> myFile.txt
done;

이는 다음과 같은 작업을 수행하기 때문입니다.

version='1  2'

원래 프로그램에서는 예상치 못한 결과가 발생하게 됩니다. 이와 같은 알 수 없는 오류를 방지하려면 변수 주위에 따옴표를 붙이는 것이 정말 좋은 생각입니다.

답변2

변수 앞의 기호는 $변수를 읽는 데 사용됩니다.

이를 할당하려면 기호를 생략해야 합니다 $. 즉:

version="1.0"
preffix="ApplicationName."

또한 ;할당 라인의 끝은 필요하지 않습니다.

관련 정보