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すべてのパターンの完全なリストが表示されます。ただし、そのいずれかを削除できない場合(たとえば、まだ開いている場合)、何も削除されません。

2つの質問があります。

  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引用符なしで使用できます。

おすすめ記事