solaris bash中以下代码中的错误在哪里?

时间:2013-08-17 10:48:08

标签: bash solaris

我已在我的剧本中写过

#!/usr/bin/bash
date=`dat '+%y%m%d_%H%M%S'`
Output=/Tamara/output_$date
echo $Output
`mkdir $Output`

但是当我运行脚本时,我得到以下内容:

/Tamara/output_23223_242222
mkdir: Failed to make directory "/Tamara/output_23223_342222'; No such file or directory

为什么会显示此错误?

1 个答案:

答案 0 :(得分:2)

第1行:

#!/usr/bin/bash

为了更好的可移植性,应该是:

#!/bin/bash

第2行:

date=`dat '+%y%m%d_%H%M%S'`

这里的拼写应该是:

date=`date '+%y%m%d_%H%M%S'`

或更好:

date=$(date '+%y%m%d_%H%M%S')

甚至更好,以避免Y2.1K错误:

date=$(date '+%Y%m%d_%H%M%S')

第3行

Output=/Tamara/output_$date

/Tamara可疑,~/Tamara会更好(或者~Tamara)。

第4行:

echo $Output

此行的代码没有问题,但如果它真的显示/Tamara/output_23223_242222,那么这既是一个虚假的日期和时间。我期待像/Tamara/output_130817_215135

这样的东西

第5行:

`mkdir $Output`

这里有两个问题,反引号没有任何意义,缺少一个选项:

mkdir -p $Output