![다른 파일에 쓰는 방법을 잘 모르겠습니다.](https://linux55.com/image/211187/%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EC%93%B0%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%84%20%EC%9E%98%20%EB%AA%A8%EB%A5%B4%EA%B2%A0%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
안녕하세요. 저는 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!"'
입력한 큰따옴표가 리터럴이어야 한다는 사실을 설명하기 위해 마지막 키의 값에는 추가 작은따옴표 세트가 자동으로 제공됩니다.