Fish - 다운로드 전 파일 삭제

Fish - 다운로드 전 파일 삭제

쉘을 실행 fish하고 찾을 수 없는 파일을 삭제하려고 하면 예외가 발생합니다. 다음 스크립트가 있습니다.

#!/usr/bin/fish

set files "/tmp/*.xlsx"
rm  -f "$files"
echo "$files"
set tmpfile (mktemp -u).xlsx
curl http://localhost:18085/myService -o "$tmpfile"  -s
xdg-open "$tmpfile"

이렇게 실행하면 변수에 files모든 패턴의 전체 목록이 표시됩니다. 그러나 그 중 하나를 삭제할 수 없는 경우(예: 아직 열려 있는 경우) 아무것도 삭제되지 않습니다.

두 가지 질문이 있습니다.

  1. 파일을 삭제하는 가장 좋은 방법은 무엇입니까?
  2. 개발 중인데 가끔 파일이 다운로드 되지 않는 경우가 있습니다 curl. 다운로드가 성공했는지 어떻게 확인하고 열 수 있나요? (존재하는지 확인하거나 파일 크기가 0보다 큰지 또는 ??인지 확인)

답변1

sh를 프로그래밍하는 것처럼 Fish를 프로그래밍하는 것 같습니다. "마음을 자유롭게" 하고 이러한 제한을 없애도록 노력하십시오.

  1. 물고기 변수 값은 다음과 같습니다.목록문자열: 전역을 확장하고 파일 목록을 저장합니다. 즉, 따옴표를 제거합니다.
    set files /tmp/*.xlsx
    
  2. 그런 다음 확장된 파일 목록을 rm에 제공합니다.
    rm  -f $files
    

mktemp위와 관련 없음: 추가 접미사를 요청할 수 있습니다 (GNU coreutils 가정).

set tmpfile (mktemp -u --suffix=.xlsx)

그런 다음 $tmpfile따옴표 없이 사용할 수 있습니다.

관련 정보