【问题标题】:Generate an HTML file with variables in shell (Automator)在 shell 中生成带有变量的 HTML 文件(Automator)
【发布时间】:2021-08-07 18:30:20
【问题描述】:

基本上,我发现自己经常做这个“工作流程”并且很想自动化:

  1. 在特定文件夹中使用新名称创建文件夹(路径不变)
  2. 在该文件夹中创建一个 index.html 文件
  3. 使用 2 个关键变量(一个网页标题和一个 https: 链接)编辑 index.html
  4. 运行脚本

这是我在 Automator 中取得的进展:

  1. 询问新文件夹名称
  2. 另存为变量
  3. 询问网站标题名称
  4. 另存为变量
  5. 求链接
  6. 另存为变量
  7. 运行 shell 脚本 cd 到正确的文件夹和“touch index.html”

现在我被困住了。在使用提到的其他两个变量时,我将如何编辑 index.html。有没有办法在使用 Automator 变量时编辑或“替换”文件的内容?

TIA!

【问题讨论】:

    标签: html bash macos shell automator


    【解决方案1】:

    尝试将以下内容添加到 Automator 工作流程中的“运行 Shell 脚本”:

    for var in $@
    do
      echo $var >> /path/to/index.html
    done
    

    然后在“运行Shell脚本”模块上方设置“传递输入:”:'作为参数'

    此循环的作用是为您在 Automator 脚本中设置的每个变量运行 do 和 done 之间的命令。或者,您可以将 for var in $@ 替换为 for var,因为空的 for 会自动收集变量。

    >>> 是 bash shell 运算符。 >> 附加到文件或在文件不存在时创建文件。 > 如果文件存在则覆盖文件,如果文件不存在则创建它。您可以删除touch 命令,除非您希望创建一个空文件,无论是否提供任何变量。

    如果您需要区分变量,甚至不需要 for 循环,只需运行即可:

    echo $1 >> /path/to/index.html
    echo $2 >> "/path to/index.html" # *or* /path\ to/index.html 
      # ^ if the directory of the file contains spaces
    echo "The third supplied variable is: ${3}" >> /path/to/index.html
      # ^ if you wish to add additional text to the variable
    

    依此类推,按照您设置自动机变量的顺序。只需确保“传递输入:”仍设置为“作为参数”。

    【讨论】:

    • 这实际上是我最终做的!非常感谢!我最终没有做一个 for 循环,因为它会循环 HTML 代码 3 次(对于 3 个变量),所以它只是抄送到目录/$1,然后触摸 index.html,然后回显“html 开始”,回显 $2 >> index.html等谢谢!!
    • 不!很高兴你明白了 :) Bash 可以为你的自动化做很多事情,所以它绝对值得学习 :D
    • 你有什么好的资源吗?先完成 ES6 JS rn
    猜你喜欢
    • 2011-06-07
    • 1970-01-01
    • 2017-11-17
    • 2016-05-11
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多