【问题标题】:bash_profile multiple line aliasbash_profile 多行别名
【发布时间】:2011-07-13 21:33:30
【问题描述】:

我想运行一个名为“showfiles”的命令,该命令将运行命令“defaults write com.apple.finder AppleShowAllFiles TRUE”和“killall Finder”我该怎么做?

【问题讨论】:

    标签: bash macos


    【解决方案1】:

    我不确定为什么@gahooa 建议的&& 选项不起作用,但还有另一个选项:创建一个shell 函数:

    showfiles() {
        defaults write com.apple.finder AppleShowAllFiles TRUE
        killall Finder
    }
    

    【讨论】:

    • 这太棒了!它本质上允许您创建多行别名(不仅仅是多命令),这使得阅读它们变得更加清晰。谢谢!!
    【解决方案2】:

    有几种方法可以做到这一点......

    选项 1:
    在你的 ~/bin 目录中放置一个脚本

    echo "defaults write com.apple.finder AppleShowAllFiles TRUE" > ~/bin/showfiles
    echo "killall Finder" >> ~/bin/showfiles
    chmod +x ~/bin/showfiles
    

    选项 2:
    使用 AND 创建别名以将命令连接在一起:

    alias showfiles='defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder'
    

    注意:如果第一个命令成功,这只会运行第二个命令。

    【讨论】:

    • 我尝试了选项 2,但 OS X 不喜欢 "&&" 我真的不想创建脚本,那么还有另一种创建别名的方法吗?如果必须,我会创建一个脚本,但是...
    • 选项 2 确实对我有用,我又试了一次,我在 showfiles= 和第一个 '.谢谢!
    【解决方案3】:
    1. 将两个语句放入一个文件中,每行一个,并将文件另存为 showfiles
    2. 运行chmod 755 showfiles
    3. 要执行文件运行./showfiles

    如果您不想每次都执行 ./,则将 showfiles 放入 PATH 中的任何目录(您可以通过执行 echo $PATH 来查看)。

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 2014-10-08
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 2016-08-14
      • 2017-10-24
      • 2015-04-02
      • 2010-10-28
      相关资源
      最近更新 更多