使用bash脚本打开最新下载的文件

海森堡

以下是我对这个问题的尝试。这是一个功能脚本,但是我必须指定用于每种文件类型的应用程序。由于有关默认应用程序的信息必须已经存储在Linux / Ubuntu上的某个位置,因此如何访问它们并将其合并到脚本中?

另外,我的脚本可以以任何方式更“优雅”吗?

感谢您对Bash脚本初学者的帮助!我感谢任何评论。

#!/bin/bash
# Open the latest file in ~/Downloads

filename=$(ls -t ~/Downloads | head -1)
filetype=$(echo -n $filename | tail -c -3)

if [ $filetype == "txt" ]; then
    leafpad ~/Downloads/$filename
elif [ $filetype == "pdf" ]; then
    evince ~/Downloads/$filename
fi
ghoti

欢迎使用bash编程。:-)

首先,我将带您参阅Bash常见问题解答很棒的资源,很多技巧,观点和警告。

其中之一是脚本所遇到的经典解析LS问题。基本思想是您不希望信任ls命令的输出,因为特殊字符(例如空格和控制字符)可能以不允许您引用文件的方式表示。

您正在打开“最后一个”文件,具体取决于该ls命令正在执行的排序为了检测没有的 最新文件ls,我们需要一些额外的代码。例如:

#!/bin/sh

last=0

for filename in ~/Downloads/*; do
  when=$(stat -c '%Y' "$filename")
  if [ $when -gt $last ]; then
    last=$when
    to_open="$filename"
  fi
done

xdg-open "$to_open"

我们的想法是,我们将遍历Downloads目录中的每个文件,并使用stat命令对时间戳最大的文件进行优化然后使用来打开该文件xdg-open,该文件可能已经安装在您的系统上,因为它是工具集的一部分,而工具集是许多其他应用程序的依赖项。

如果您没有xdg-open,则可以从xdg-utils软件包安装它,该软件包使用Linux发行版附近的任何软件包管理系统。

另一种可能性是gnome-open,它是Gnome桌面(libgnome准确地说软件包)的一部分。YMMV。我们需要更多地了解您的发行版和桌面环境,才能提出更好的建议。

请注意,如果您确实想继续按扩展名选择应用程序,则可能要考虑使用开关而不是一系列ifs:

...

case "${filename##*.}" in
  txt)
    leafpad "$filename"
    ;;
  pdf)
    xdg-open "$filename"
    ;;
  *)
    echo "ERROR: can't open '$filename'" >&2
    ;;
esac

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用gnome中的bash脚本打开文件

来自分类Dev

bash脚本,该脚本使用sftp下载文件

来自分类Dev

Bash脚本下载ftp文件

来自分类Dev

Bash脚本下载ftp文件

来自分类Dev

使用bash脚本从在线数据库下载文件

来自分类Dev

Firefox-使用外部bash脚本下载文件

来自分类Dev

使用bash脚本从ftp服务器下载多个文件

来自分类Dev

如何使用Powershell脚本执行文件夹中的最新文件(刚刚下载)

来自分类Dev

如何使用bash脚本运行终端打开文件夹

来自分类Dev

期望脚本使用grep从远程服务器下载最新文件

来自分类Dev

使用脚本下载文件

来自分类Dev

如何从bash脚本中打开文件?

来自分类Dev

如何使用bash脚本从具有URL的CSV文件中下载?

来自分类Dev

如何使用wget bash脚本一次下载一个文件

来自分类Dev

Bash脚本从“下载”文件夹中复制文件

来自分类Dev

使用Shell脚本下载文件

来自分类Dev

使用bash脚本提取文件

来自分类Dev

使用变量python脚本打开文件

来自分类Dev

使用Shell脚本同时打开多个文件

来自分类Dev

使用VB脚本打开最近的日志文件

来自分类Dev

使用变量python脚本打开文件

来自分类Dev

使用批处理脚本打开文件

来自分类Dev

使用 shell 脚本同时打开多个文件

来自分类Dev

使用最新的SDK从Google Drive下载文件?

来自分类Dev

sftp文件下载脚本

来自分类Dev

如何确定文件是否在 FreeBSD 上的 bash 脚本中打开

来自分类Dev

从Bash脚本打开URL

来自分类Dev

OSX“打开” bash脚本

来自分类Dev

如何让我的 Python 脚本转到 URL,下载最新文件