我运行fish
shell,当我尝试删除未找到的文件时,它给出了异常。我有以下脚本:
#!/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
可以不带引号使用。