크기 때문에 크기가 마음에 들지 않는 현재의 솔루션입니다. 누군가 다른 사람이 깨끗한 사람을 찾으면 그 사람을 기꺼이 받아들이는 것보다 더 행복 할 것입니다.
여기서는 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