【问题标题】:OS X Shell - 'Clickable' script to erase files?OS X Shell - 删除文件的“可点击”脚本?
【发布时间】:2015-07-06 05:57:51
【问题描述】:

我使用 Latex 来编写文档。 Latex 创建许多辅助文件来编译文档。我经常想清理我的工作目录。

当我在 Windows 上工作时,我曾经在工作目录中保留一个 .bat 文件,如下所示:

del *.aux
del *.pdf
del *.log
del *.bak
del *.gz
del *.bbl
del *.blg

我可以点击它来删除当前目录中的所有辅助文件

现在,我想在我的 Mac 上做同样的事情。我创建了一个这样的 .sh 文件:

#!/bin/bash

echo "Cleaning files..."

rm *.aux
rm *.bak
rm *.bbl
rm *.blg
rm *.gz
rm *.log
rm *.pdf

echo "Done!"

我知道我可以运行(即从命令行调用),但我无法点击 - 这更方便,因为我并不总是会使用终端。

我要强调一点,脚本应该删除点击它的目录中的文件!

如何将此脚本转换为“可点击”脚本?

感谢您的任何意见!

【问题讨论】:

  • 您需要动态找到脚本文件的路径:stackoverflow.com/questions/59895/…
  • 点击不属于任何目录。你的意思是它应该删除你终端所在目录中的一些文件吗?
  • @MarkSetchell 我可以右键单击它并将其关联到 Terminal.app,这实际上会打开一个带有调用的终端:/path_of_script.sh; exit;
  • 添加到工具栏的 AppleScript 可以获取当前文件夹并运行脚本。
  • @AlexanderO'Mara 您的链接真的很有帮助,我非常感谢。

标签: macos bash shell clickable


【解决方案1】:

基于此参考 (Getting the source directory of a Bash script from within),我最终使用以下代码解决了我的问题:

#!/bin/bash

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )

echo "Cleaning files..."

cd $DIR
rm *.aux
rm *.bak
rm *.bbl
rm *.blg
rm *.gz
rm *.log
rm *.pdf

echo "Done!"

#read -p "Press [Enter] to continue..."

它可以很好地清理 Texmaker 留下的所有讨厌的文件!

【讨论】:

    【解决方案2】:

    请参阅this answer 了解如何使 shell 脚本可双击,但请注意,当您从 Finder 启动脚本时,没有“当前目录”的概念。

    【讨论】:

    • command 文件本质上是指向主目录的,因此它对我不起作用。
    • 是的,这就是为什么我说从 Finder 启动时没有“当前目录” - 你需要以某种方式指定一个目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2010-09-21
    • 2017-01-25
    • 2016-06-25
    相关资源
    最近更新 更多