我对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进入该文件夹。
我已经上网了,但无法提出解决方案。
谢谢。
答案 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