【问题标题】:How to force a file to open via a bash script?如何强制通过 bash 脚本打开文件?
【发布时间】:2014-04-20 17:18:07
【问题描述】:

为什么我不能让这个 bash 命令无法正常工作?

到目前为止,我正在使用它在 Sublime Text 中打开文件

open -a Sublime\ Text path/to/file_directory/file_name.php     (doesn't have to be php)

这适用于大多数文件,但不适用于某些文件。

又名:

  • .htaccess
  • some_file(不带 .txt、.php 或任何其他结尾)
  • some_file.txt

【问题讨论】:

    标签: macos bash shell command-line command


    【解决方案1】:

    在 OS X 中,每种文件类型(由文件扩展名标识,例如 .txt.php)都有一个与之关联的默认程序,用于打开此类文件。您似乎没有任何与 .txt.htaccess 文件关联的程序。

    Here解释了如何更改文件关联。

    【讨论】:

    • 我已经将 sublime text 设置为打开文件的默认应用程序。但是,这是它可能无法正常工作的正当理由。我在发布之前达到了这一步。我应该在上面提到它。还有其他想法吗?
    • 我解决了这个问题。天哪.. 我讨厌一些错误怎么会如此愚蠢。
    • 请发布您的解决方案,以防其他人面临同样的愚蠢:)
    【解决方案2】:

    基本上我使用 Alfred 应用程序来执行任务以加快我的工作流程。

    我扩展了一个原本应该显示您最近下载目录的 alfred 工作流程,但我将其更改为显示我的开发人员说明目录。这很有用,因为这样我就可以用

    打开 alfred
    ⌘ space
    

    然后它会输入

    dn
    

    它会从我的 Developer Notes 目录中提取所有文件。我的问题是我只想点击 enter 以在 Sublime Text 中正确打开它。我的愚蠢错误是我没有从

    切换脚本格式
    /usr/bin/php    ==back to==>     /bin/bash
    

    这就是它不起作用的原因。没有任何语法错误。只是一个愚蠢的愚蠢被忽视的错误。虽然我找到了!请记住,如果您正在构建 alfred 工作流,请不要忘记切换脚本过滤器语言。

    【讨论】:

    • 不过使用ST提供的wrapper更方便。这就是它的用途 - 从命令行打开文件。 ;)
    【解决方案3】:

    在您的具体情况下,只需使用

    subl path/to/file
    

    为了从命令行打开带有 Sublime Text 的文件。 Sublime Text 提供了一个命令行包装器。 请查看documentation 了解更多详情。

    【讨论】:

      【解决方案4】:

      来自 OS X 手册页 open:

      -t  Causes the file to be opened with the default text editor, as determined via LaunchServices
      

      所以您需要做的就是将以下行添加到~/.bashrc~/.profile

          EDITOR="/bin/local/subl -nw"
      

      或者如果你在通常的位置安装了 Sublime Text,

          EDITOR="/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text -nw"
      

      然后从命令行或脚本,你可以运行

          open -t file_name
      

      【讨论】:

        猜你喜欢
        • 2021-04-06
        • 1970-01-01
        • 1970-01-01
        • 2013-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-20
        • 2020-09-12
        相关资源
        最近更新 更多