1

我正在尝试创建一个(我的第一个)bash 脚本,但我需要一些帮助。我有以下内容:

#!/bin/bash

echo "Write a LaTeX equation:" 
read -e TeXFormula

URIEncoded = node -p "encodeURIComponent('$(sed "s/'/\\\'/g" <<<"$TeXFormula")')"

curl http://latex.codecogs.com/gif.latex?$URIEncoded -o /Users/casparjespersen/Desktop/notetex.gif | pbcopy

我希望它:

  1. 需要用户输入(LaTeX 方程)
  2. URIEncode 用户输入(谷歌的最高结果是使用 node.js,但任何事情都可以......)
  3. 对该网站执行 cURL 调用,将方程式转换为 GIF 图像
  4. 将图像复制到占位符,以便我可以将其粘贴到 OneNote、Word 等笔记应用程序中。

我的脚本在以下方面出现故障:

  • URIEncoded是未定义的,所以我的变量定义有问题。
  • 当我使用pbcopy加密文本复制时,复制的是图像内容,而不是实际图像。有解决方法吗?否则,脚本可以自动打开图像,我可以手动 Cmd + C 内容。
4

1 回答 1

2

URIEncoded 未定义,所以我的变量定义有问题。

该行应为

URIEncoded=$(node -p "encodeURIComponent('$(sed "s/'/\\\'/g" <<<"$TeXFormula")')")

符号周围没有空格=,并使用$()构造来实际执行命令,否则,命令的文本将被分配给变量。

当我使用 pbcopy 复制时,复制的是图像的加密文本内容,而不是实际图像。有解决方法吗?否则,脚本可以自动打开图像,我可以手动 Cmd + C 内容。

pbcopy从标准输入获取输入,但您告诉curl 将输出写入文件而不是标准输出。尝试简单

curl http://latex.codecogs.com/gif.latex?$URIEncoded | pbcopy

或者,对于您描述的第二个选项

curl http://latex.codecogs.com/gif.latex?$URIEncoded -o /Users/casparjespersen/Desktop/notetex.gif && open $_
于 2014-11-04T08:46:37.743 回答