私の現在のソリューションは、そのサイズのために好きではありません。他の誰かがよりクリーンなものを見つけたら、私は彼らのことを受け入れることを喜んでします。
これは、test_output_file
がデフォルトのファイル名であることを前提としています。
- name: get next value of test_output_file to avoid overwrites
shell: |
path=$(dirname "{{ test_output_file }}")
filename=$(basename "{{ test_output_file }}")
extension="${filename##*.}"
filename="${filename%.*}"
if [[ -e $path/$filename.$extension ]] ; then
i=2
while [[ -e $path/$filename-$i.$extension ]] ; do
let i++
done
filename=$filename-$i
fi
echo $path/$filename.$extension
register: result
changed_when: False
- name: increments test_output_file if needed
set_fact:
test_output_file: "{{ result.stdout_lines[0] }}"
when: test_output_file != result.stdout_lines[0]
YYYYMMDD-HHMMSSは機能しますか? – Matt
あなたは「*簡単な解決策を望んでいますか?」あなたはfreelancer.comではないのでこれを投稿したかったのですか? – techraf
@techrafはSOがこのような一般的なコーディングの問題に最適な解を得るための最良の場所であるからです。誰も解決策を投稿しても心配しないでください。自分で質問に答えます。そして、いいえ、日付スタンプは受け入れられませんが、誰かがbashでそれをやりたいのであれば、いつでもgets_next_filenameという単一のタスクを使うことができるので、私は受け入れられるでしょう。私の現在の実装は長すぎるので、自分自身を恥ずかしくしたくありません。 – sorin