我不知道如何编写 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 /
(或类似)城市......