我在linux中很天真并在我正在开发的一个脚本中寻找指导
我有一条路:
/数据/毫米/ MS
我想生成一个脚本,为上述路径中的每一天创建特定于日期的文件夹。 这是我创建的但不完整的
dir= dd/mm/ms //Existing directory
DIR_DATE=$(`date +%Y%m%d`) //todays date stored inside a variable
CREATE_DIR= mkdir $dir/$DIR_DATE // want to create a date specific dir inside $dir
但是下面的代码不起作用,你能帮我解决一下如何获得结果:
DD / MM / MS / 20140211
DD / MM / MS / 20140212
依旧......
我意识到第3行的代码
CREATE_DIR= mkdir $dir/$DIR_DATE
不正确,我需要更改,但不知道如何
我更新了我的代码,见下文:
#!/bin/bash
dir= "/data/mvr/MasterFiles/testing"
DIR_DATE=$(date +%Y%m%d)
CREATE_DIR="${dir}/${DIR_DATE}"
mkdir "${CREATE_DIR}" || echo "Error creating directory ${CREATE_DIR}"
我重申我的问题,我想在现有目录中创建日期特定文件夹
现有目录:/ data / mm / ms
需要为此现有文件夹路径中的每一天创建特定于日期的文件夹
例如/ data / mm / ms / 20140211
/数据/毫米/ MS / 20140212
等等
答案 0 :(得分:3)
您需要参考命令替换:
dir="/data/mm/ms"
DIR_DATE=$(date +%Y%m%d)
CREATE_DIR="${dir}/${DIR_DATE}"
mkdir "${CREATE_DIR}" || echo "Error creating directory ${CREATE_DIR}"
话说:
var= value
将尝试使用变量value
未设置执行命令var
。
此外,您使用$(command)
形式进行命令替换;反推是另一种方式。你好像把两者合二为一。那是另一个错误。
答案 1 :(得分:1)
看起来你走在正确的轨道上。这可能会更好:
#!/bin/bash
dir=/data/mm/ss
DIR_DATE=`date +%Y%m%d` # not sure on the Y, m, and d -- check man pages
mkdir ${dir}/${DIR_DATE}
# check exit code
if [ $? -ne 0 ]; then
# error! print something to the user
exit 1
fi
exit 0