シェルを実行し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つの質問があります。
- ファイルを削除する最良の方法は何ですか?
- 開発中ですが、時々ファイルがダウンロードされないことがあります
curl
。ダウンロードが成功したことをどうやって確認して開くことができますか? (存在するかどうかを確認するか、ファイルサイズが0より大きいかどうかを確認しますか?)
答え1
shをプログラムするのと同じように、Fishをプログラムするようです。 「心を自由に」し、これらの制限を取り除くように努めてください。
- 魚変数の値は次のとおりです。リスト文字列:グローバルを展開し、ファイルのリストを保存します。つまり、引用符を削除します。
set files /tmp/*.xlsx
- 次に、拡張ファイルのリストをrmに提供します。
rm -f $files
mktemp
上記に関連しない:追加のサフィックスを要求することができます(GNU coreutilsを想定)。
set tmpfile (mktemp -u --suffix=.xlsx)
その後、$tmpfile
引用符なしで使用できます。