如何在 automator shell 脚本中使用带空格的路径?
How to use paths with spaces in automator shell script?
我有一个 Automator 工作流程,它应该将所选文件的创建日期设置为我想要输入的日期。不幸的是我的路径有空格。因此它不起作用。
我尝试了几种变体,例如:
SetFile -d \" 12:00:00\" "$@2"
SetFile -d \" 12:00:00\" \"$@2\"
SetFile -d \" 12:00:00\" '$@2'
SetFile -d \" 12:00:00\" \'$@2\'
路径如下:
/Users/simon/Documents/Steuern/Steuern 2021/Scan_000775.pdf
我用的shell是安装了oh-my-zsh的ZSH
这是我的工作流程:
- 请求 Finder-Object
- 获取变量值
- 请求文本输入
- 设置变量值
- 询问变量的值
- 执行shell脚本:"SetFile -d "$1 12:00:00" "$@2""
谁能告诉我如何编写 shell 脚本来使用带空格的路径名?
那肯定很不错。谢谢。
如果我没理解错的话,你想要:
SetFile -d " 12:00:00" "${@:2}"
解释:转义引号可以防止它们像引号一样(将它们变成普通字符);在这种情况下,您希望它们起到引号的作用,所以您不应该对它们进行转义。此外,"$@2"
不获取从 </code> 开始的参数,它获取 <em> 所有 </em> 个参数,并在最后一个参数的末尾添加一个“2”一。如果您想要除第一个参数之外的所有参数,请改用 <code>"${@:2}"
。
我有一个 Automator 工作流程,它应该将所选文件的创建日期设置为我想要输入的日期。不幸的是我的路径有空格。因此它不起作用。 我尝试了几种变体,例如:
SetFile -d \" 12:00:00\" "$@2"
SetFile -d \" 12:00:00\" \"$@2\"
SetFile -d \" 12:00:00\" '$@2'
SetFile -d \" 12:00:00\" \'$@2\'
路径如下: /Users/simon/Documents/Steuern/Steuern 2021/Scan_000775.pdf
我用的shell是安装了oh-my-zsh的ZSH
这是我的工作流程:
- 请求 Finder-Object
- 获取变量值
- 请求文本输入
- 设置变量值
- 询问变量的值
- 执行shell脚本:"SetFile -d "$1 12:00:00" "$@2""
谁能告诉我如何编写 shell 脚本来使用带空格的路径名? 那肯定很不错。谢谢。
如果我没理解错的话,你想要:
SetFile -d " 12:00:00" "${@:2}"
解释:转义引号可以防止它们像引号一样(将它们变成普通字符);在这种情况下,您希望它们起到引号的作用,所以您不应该对它们进行转义。此外,"$@2"
不获取从 </code> 开始的参数,它获取 <em> 所有 </em> 个参数,并在最后一个参数的末尾添加一个“2”一。如果您想要除第一个参数之外的所有参数,请改用 <code>"${@:2}"
。