我在终端中使用 ZSH 作为我的 shell,虽然我已经编写了一些函数来自动化特定任务,但我从未尝试过需要当前所需功能的任何操作。
最近我使用 Jekyll 重新编写了博客,并希望使用类似于 scp 的东西自动化生成博客文章并将新生成的文件上传到我的服务器上。
我对 ZSH 中的变量绑定/使用有些困惑;例如:
DATE= date +'20%y-%m-%d'
echo $DATE
正确地输出了2011年8月23日,正如我所期望的那样。
但是当我尝试:
DATE= date +'20%y-%m-%d'
FILE= "~/path/to/_posts/$DATE-$1.markdown"
echo $FILE
它输出:
2011-08-23
blog.sh: line 4: ~/path/to/_posts/-.markdown: No such file or directory
当我想要运行博客标题(忽略字符串需要进行处理以使其更具URL友好性,并且路由路径path/to不存在)时,输出如下:
即,博客标题为"blog title",输出:
2011-08-23
blog.sh: line 4: ~/path/to/_posts/-blog title.markdown: No such file or directory
为什么$DATE在调用打印$FILE之前被打印,而不是字符串被包含在$FILE中?
date +%Y-%m-%d
比date +20%y-%m-%d
更加简洁。date +%F
更加简洁明了。(这假设你的date
命令支持这些格式;GNU date 支持,但其他可能不支持。) - Keith Thompson