mkdir $(日期'+%d-%b-%Y')
然后将cd转到动态创建的目录
如何“ cd”到使用“ mkdir $(date'+%d-%b-%Y')”创建的目录,并通过进入bash脚本中已创建的目录进行操作
答案 0 :(得分:3)
简单的方法是,将目录名称存储在变量中
dirname=$(date '+%d-%b-%Y')
if [ -n "$dirname" ]; then
mkdir "$dirname"
if [ -d "$dirname" ]; then
cd "$dirname"
fi
fi
添加了一些错误处理,并且如果您的文件是在Windows中编写并在Unix环境中运行的,反之亦然,我建议您使用dos2unix
来处理新的行字符转换(这适用于?
中看到ls
个字符OP。
答案 1 :(得分:0)
你能告诉我你的情况吗?
在大多数情况下,您不应cd
进入目录。改用绝对路径:
良好做法:
mkdir /tmp/mydir/
cp -R /usr/local/example/ /tmp/mydir/
sed 's/foo/bar/g' /tmp/mydir/afile
不良做法:
mkdir /tmp/mydir/
cd /tmp/mydir/
cp -R /usr/local/example/ .
sed 's/foor/bar/g' afile
P.S。 主题:
$ mkdir $(date '+%d-%b-%Y')
$ cd $(date '+%d-%b-%Y')
$ pwd
/Users/user/18-Feb-2019
答案 2 :(得分:0)
在Bash中,$_
扩展到上一个命令的最后一个参数。因此,您可以这样做:
mkdir $(date '+%d-%b-%Y')
cd $_
在真正的Bash程序中,您需要引用扩展(在代码上使用Shellcheck来检查缺少的引号),并检查mkdir
和cd
上的错误。