스크립트 중간에 생성된 파일에 쓸 수 있는 bash 스크립트 부분을 작성하는 방법을 모르지만(사용자 입력에 따라 다르기 때문에) 출력을 처음부터 작성하고 싶습니다.
예:
#!/bin/bash
<start_of_logging>
<code>
read -p "Enter your city: " city
touch ${city}
<code>
<end_of_logging>
스크립트는 사용자가 입력한 내용을 알지 못하므로 city
제가 맞다면 <start_of_logging>
해당 섹션에서 로그인할 수 없습니다. 아니면 해결 방법이 있습니까? 내 말은 모든 것을 처음부터 기록하고 사용자가 제공한 도시라는 파일에 기록하고 싶다는 뜻입니다.
답변1
주석을 요약하면 코드는 다음과 같습니다.
#!/bin/bash
### start logging using temporary logfile
logfile="$(mktemp)" # possibly add options to mktemp, like "-p dir" as needed
# add a message to logfile
log()
{
echo "$@" >> "$logfile"
}
### code
read -p "Enter your city: " city
touch ${city}
### update logfile
newlogfile="something_with_${city}.log"
log "renaming temporary logfile $logfile to $newlogfile"
mv "$logfile" "$newlogfile" && logfile="$newlogfile"
log "now logging to $logfile"
###
"testtown"을 입력하여 스크립트를 실행하면 다음과 같은 결과가 나타납니다.
Enter your city: testtown
me@pc:~> cat something_with_testtown.log
renaming temporary logfile /tmp/tmp.alKCBTV7ti to something_with_testtown.log
now logging to something_with_testtown.log
중요한 팁
아무도 :; rm -rf /
도시(또는 그와 비슷한 것)에 들어오지 않기를 바랍니다…