在BASH脚本中转义date的输出

时间:2014-11-28 19:07:39

标签: bash date curl escaping

我正在研究一个非常简单的BASH脚本。我想要做的是使用curl从webcamera中提取图像并将其写入名称为datestamped的文件。

#! /bin/bash

DATE=$(date +%Y-%m-%d_%H-%M)
DIRECTORY1=home/manager/security_images/Studio_1/
TARGET1=${DIRECTORY1}${DATE}.jpg

curl http://web@192.168.180.211/snapshot.cgi > $TARGET1

当我尝试运行时,我被告知没有这样的文件或目录。我认为这是由于我的转义错误,但我在每个阶段都尝试了各种变量的引号,但仍然无法使其发挥作用。我只是不明白出了什么问题,并且可以真正使用一些指针来解决我的错误。

非常感谢

2 个答案:

答案 0 :(得分:0)

双重引用重定向目标就足够了:

curl http://web@192.168.180.211/snapshot.cgi > "$TARGET1"

确保其路径存在。您可以使用

运行脚本
set -xv

查看变量的插值方式。

答案 1 :(得分:0)

不,这只是一个错字。

DIRECTORY1=home/manager/security_images/Studio_1/
          ^^ 

应该是

DIRECTORY1=/home/manager/security_images/Studio_1/

当然。

至于转义,即使现在只使用安全字符,所以引用在技术上是多余的,默认情况下在每个行中引用所有 $variables shell脚本中的一个好习惯,当你不想使用它们的情况很少。