跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 求修改一小段 bash 脚本使之与 zsh 兼容
未分類
13 2 月 2021

求修改一小段 bash 脚本使之与 zsh 兼容

求修改一小段 bash 脚本使之与 zsh 兼容

資深大佬 : xuegy 5

就 4 行代码应该难不倒大佬们

    paraview () {         local _paraviews=(/Applications/[Pp][Aa][Rr][Aa][Vv][Ii][Ee][Ww]*.app)         $_paraviews/Contents/MacOS/paraview "[email protected]"     }     export -f paraview 

这段只能在 bash 上跑,zsh 不认export -f,上网研究了半天,都说要把函数挪到 zshrc 里面,那就跟 bash 又不兼容了。

大佬有話說 (15)

  • 資深大佬 : lululau

    zsh 不支持导出函数

  • 主 資深大佬 : xuegy

    @lululau 加 PATH 会有冲突的问题,所以才用的函数。那这个是不是无解了?

  • 資深大佬 : tankren

    这一段用 bash 写,加个头#!/usr/bin/env bash
    然后 zsh 里面调用?

  • 主 資深大佬 : xuegy

    @tankren
    “`
    #!/usr/bin/env bash
    echo $SHELL
    “`
    结果返回
    “`
    /bin/zsh
    “`
    还是没法用

  • 資深大佬 : AngryPanda

    都说要把函数挪到 zshrc 里面,那就跟 bash 又不兼容了。
    —————-
    这样如何:

    if [ “$0” == “bash” ]; then
    export -f
    fi

  • 資深大佬 : AngryPanda

    @xuegy $SHELL 返回的是默认 shell, $0 是当前 shell

  • 資深大佬 : tankren

    @xuegy #4 结果写入文件 zsh 再去读取

  • 主 資深大佬 : xuegy

    @AngryPanda 这一段根本就不是可执行文件,是有另一个脚本加载这段文本,所以 hangbang 无效,$0 是空的。

  • 資深大佬 : omph

    独立成文件,用之前 source 一下不行么?

  • 資深大佬 : TimePPT

    如果需求是 macOS 下快速用某 app 打开文件,直接用 open 命令得了

  • 資深大佬 : initd

    本地脚本
    bash a.sh

    网络脚本
    bash <(curl -L get.zsh.one)

  • 資深大佬 : initd

    有些命令 zsh 就是执行不了,
    之前用 certbot 就遇到了这种问题

  • 資深大佬 : initd

    建议用 ruby 写脚本,比 bash 正常多了

  • 主 資深大佬 : xuegy

    @TimePPT 我试过 open 了,参数传不进去。

  • 主 資深大佬 : xuegy

    @TimePPT 这个软件本来是 linux 上的,标准的打开方式是加 PATH 。在 mac 上要打个小补丁才能用,所以就变成这样了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具