尝试创建带有时间戳的脚本

时间:2019-11-21 01:08:21

标签: bash

我对bash脚本还很陌生。 我正在尝试创建带有时间戳的目录,然后使用cd进入该目录。 我能够创建一个目录,并且可以使用一个命令将其安装到该目录中。

mkdir“ build” && cd“ build”

我可以先创建包含数据的目录,然后将其cd入。

mkdir date '+%m%d%y' && cd date '+%m%d%y'我可以使用一个命令创建该dir并将其插入cd。

这是我的bash脚本:

#!/bin/bash

# mkdir $(date +%F) && cd $(date +%F)

 mkdir build_`date '+%m%d%y'` && cd build_`date '+%m%d%y'`

我需要在标题中创建带有build _ {date '+%m%d%y'的目录,然后CD进入该文件夹。 我已经上网了,但无法提出解决方案。

谢谢。

3 个答案:

答案 0 :(得分:0)

尝试一下:

#!/bin/bash

build_dir="build_$(date '+%m%d%y')"

mkdir $build_dir && cd $build_dir

答案 1 :(得分:0)

最好是将您的文件夹命名为YYYY.MM.DD,例如build_2019.11.21

#!/bin/bash
DIRECTORY="build_$(date '+%Y.%m.%d')"
if [ ! -d "$DIRECTORY" ]; then
    # checking if $DIRECTORY doesn't exist.
    mkdir $DIRECTORY
fi
cd $DIRECTORY
touch testfile

答案 2 :(得分:0)

这是一个使用/usr/bin/env bash和内置命令printf而不是/bin/date的脚本。

#!/usr/bin/env bash

date="$(printf '%(%m%d%y)T' -1)"
[[ -d build_"${date}" ]] || mkdir build_"${date}"
cd build_"${date}"

# do something useful here
# ...

但是,在脚本(子外壳)中更改目录本身并没有太多用处,因为在脚本退出后,您当前的工作目录($PWD)将相同。

如果要将当前的shell会话更改为新目录,请使用shell函数。

mkbuild() {
  date="$(printf '%(%m%d%y)T' -1)"
  [[ -d build_"${date}" ]] || mkdir build_"${date}"
  cd build_"${date}"
}

然后运行它:

$ echo $PWD
/tmp
$ mkbuild
$ echo $PWD
/tmp/build_112119