쉘을 실행 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
모든 패턴의 전체 목록이 표시됩니다. 그러나 그 중 하나를 삭제할 수 없는 경우(예: 아직 열려 있는 경우) 아무것도 삭제되지 않습니다.
두 가지 질문이 있습니다.
- 파일을 삭제하는 가장 좋은 방법은 무엇입니까?
- 개발 중인데 가끔 파일이 다운로드 되지 않는 경우가 있습니다
curl
. 다운로드가 성공했는지 어떻게 확인하고 열 수 있나요? (존재하는지 확인하거나 파일 크기가 0보다 큰지 또는 ??인지 확인)
답변1
sh를 프로그래밍하는 것처럼 Fish를 프로그래밍하는 것 같습니다. "마음을 자유롭게" 하고 이러한 제한을 없애도록 노력하십시오.
- 물고기 변수 값은 다음과 같습니다.목록문자열: 전역을 확장하고 파일 목록을 저장합니다. 즉, 따옴표를 제거합니다.
set files /tmp/*.xlsx
- 그런 다음 확장된 파일 목록을 rm에 제공합니다.
rm -f $files
mktemp
위와 관련 없음: 추가 접미사를 요청할 수 있습니다 (GNU coreutils 가정).
set tmpfile (mktemp -u --suffix=.xlsx)
그런 다음 $tmpfile
따옴표 없이 사용할 수 있습니다.