You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Sketch CLI在Fish Shell下的初始化等效命令及传参方法

Fish Shell 下的 Sketch CLI 初始化脚本解决方案

我刚好研究过Fish和Sketch CLI的适配,这就帮你把原Shell脚本转换成Fish能用的版本,顺便把参数传递的坑给你讲清楚:

完整的Fish脚本代码

#!/usr/bin/env fish

# 找到Sketch应用的安装路径
set SKETCH (mdfind kMDItemCFBundleIdentifier == 'com.bohemiancoding.sketch3' | head -n 1)

# 传递所有参数给sketchtool
"$SKETCH/Contents/Resources/sketchtool/bin/sketchtool" $argv

关键改动说明

  1. Shebang替换:把原脚本的#!/bin/sh换成Fish的标准开头#!/usr/bin/env fish,让系统用Fish来执行这个脚本。
  2. 变量赋值方式:Fish里用set 变量名 (命令)来做命令替换,不需要加$前缀(这和Bash/Zsh不一样),所以原代码的SKETCH=$(...)改成set SKETCH (...)就能正常工作。
  3. 参数传递的核心差异:
    • 原Bash里的"$@"是用来传递所有脚本参数的写法,在Fish里对应的是$argv,而且不需要加引号——Fish会自动处理带空格、特殊字符的参数,直接用$argv就可以完美传递所有输入参数。
    • 你之前尝试去掉引号、移除$都不对,本质是没搞清楚Fish和Bash在参数变量上的命名区别,Fish里没有$@这个写法,统一用$argv来指代所有脚本参数。

使用方法

  1. 把上面的代码保存成sketchtool.fish文件
  2. 给脚本加执行权限:chmod +x sketchtool.fish
  3. 像原脚本一样使用,比如调用导出命令:./sketchtool.fish export artboards your-sketch-file.sketch

内容的提问来源于stack exchange,提问作者TheJeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:32:29