한 변수의 수식 결과와 다른 변수의 시작 부분에 변수를 추가하고 싶습니다.

한 변수의 수식 결과와 다른 변수의 시작 부분에 변수를 추가하고 싶습니다.

문제의 파일 이름입니다OD_Orders_2019-02-19.csv

파일 이름의 나머지 부분은 유지하면서 파일 이름에 어제 날짜가 포함된 파일을 읽는 bash 스크립트를 만들려고 합니다. $y수식 출력이 파일 이름과 그 사이의 정확한 날짜와 같기를 원합니다 . 이것이 내가 지금까지 가지고 있는 것입니다:

어제 날짜를 올바른 형식으로 얻기 위해 x를 만들었습니다.

x="date -d yesterday +%Y-%m-%d"

y="OD_Orders_$x.csv"

문제는 에코를 수행할 때 결과가 $y다음과 같다는 것입니다. OD_Orders_date -d yesterday +%Y-%m-%d.csv

$xecho $y수식을 표시하지 않고 때의 값을 올바르게 표시해야 합니다 . $y이 스크립트에서 나중에 더 많이 사용하고 싶기 때문에 올바른 형식의 어제 날짜가 포함된 파일 이름이 필요합니다 .

답변1

당신은 사용해야합니다명령 대체 $( ... )명령 자체가 아닌 명령의 출력을 바꿉니다.

x="$(date -d yesterday +%Y-%m-%d)"
y="OD_Orders_${x}.csv"

물론 다음과 같이 단순화할 수 있습니다.

y="OD_Orders_$(date -d yesterday +%Y-%m-%d).csv"

관련 정보