다른 파일에 쓰는 방법을 잘 모르겠습니다.

다른 파일에 쓰는 방법을 잘 모르겠습니다.

안녕하세요. 저는 2개의 변수가 있는 script.sh라는 스크립트를 가지고 있습니다.

#! /bin/bash
read -p " name " name
read -p " last " last 
( here am not sure what to do but if possible to open file name.yaml write $name $last save and exit)
cat name.yaml

name.yaml에 다른 파일이 있습니다.

 username: $name
  lastname: $last 

스크립트를 실행합니다.

./script.sh
   name AAA
   last BBB
 username: AAA
  lastname: BBB

이런 일을 할 수 있나요? 읽어주셔서 감사하고 미리 도움을 주셔서 감사합니다

답변1

변수가 있는 경우 echo해당 변수를 파일에 추가할 수 있습니다.

echo "username: $name" > newfile
echo "lastname: $last" >> newfile

"셸에서 스트림 리디렉션"을 읽어보세요.

답변2

변수에서 올바른 형식의 YAML 파일을 생성하려면 다음 yq과 같은 YAML 인식 도구를 사용하는 것이 가장 좋습니다.https://kislyuk.github.io/yq/

이를 사용하여 다음과 같은 스크립트를 작성할 수 있습니다.

#!/bin/bash

IFS= read -r -p 'Username : ' name1
IFS= read -r -p 'Last name: ' name2
IFS= read -r -p 'Quote    : ' quote

yq -y -n \
    --arg username "$name1" \
    --arg lastname "$name2" \
    --arg quote "$quote" \
    '$ARGS.named' >name.yaml

yq이는 이 옵션의 여러 인스턴스를 사용하여 명령줄에 제공된 각 키와 해당 값을 포함하는 YAML 문서를 만드는 데 사용됩니다 --arg.

이 명령을 대화형으로 실행하면 사용자에게 세 개의 문자열을 요청한 후 세 개의 키 username와 다음이 포함 lastname된 YAML 파일이 생성됩니다 quote.

$ ./script
Username : myself
Last name: von Self
Quote    : "Just do it!"
$ cat name.yaml
username: myself
lastname: von Self
quote: '"Just do it!"'

입력한 큰따옴표가 리터럴이어야 한다는 사실을 설명하기 위해 마지막 키의 값에는 추가 작은따옴표 세트가 자동으로 제공됩니다.

관련 정보