【发布时间】:2015-07-30 07:15:14
【问题描述】:
如果我想覆盖已经存在的文件,我如何使用脚本询问我是否要覆盖该文件来触摸或创建新文件?脚本应该是什么样的?
【问题讨论】:
-
请分享您在这方面的进展,以及您遇到的错误,正如 Jonathan Leffler 所解释的那样。帮助是给那些首先帮助自己的人。我们从错误中吸取教训,但首先你必须犯错误。
标签: linux bash shell scripting
如果我想覆盖已经存在的文件,我如何使用脚本询问我是否要覆盖该文件来触摸或创建新文件?脚本应该是什么样的?
【问题讨论】:
标签: linux bash shell scripting
可能是这样的:
#!/bin/bash
if [ -e "$1" ]; then
echo "Want to overwrite? (Y/n)"
read ANSWER
[ "$ANSWER" = "Y" ] && touch "$1" || echo "Ok"
else
echo "Creating"
touch "$1"
fi
将其称为:./script <filename>
【讨论】:
touch 不会覆盖现有文件;它会更改文件的“最后修改”时间,而不会损坏其内容。
[ x = y ] && touch x || echo OK 回显“OK”和[ x = x ] && touch z || echo OK 触摸(创建)z 并且没有回显。因此,不清楚“OK”是什么意思(我认为“OK;我没有触摸文件”;消息可能更清楚)。