使用随机名称创建目录的简单 shell 脚本

Simple shell script that creates a dir with a random name

我正在尝试在 linux 中编写一个简单的 shell 脚本来创建具有随机名称的目录。

名称必须由当天的日期后跟一个随机字符串组成 就像在这个例子中: 2018-02-22y2Fdv9zzLVLupkl9El0dWalJAGTROLxE

这是shell脚本

#!/bin/bash
# the date
DATAOGGI= echo -n $(date +"%Y-%m-%d")
# random string
RANDOM_STRING=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
# the dir
NEW_DIR=$(echo -n ${DATAOGGI}${RANDOM_STRING})
echo $NEW_DIR
mkdir $NEW_DIR

不幸的是,即使变量NEW_DIR是正确的 echo $NEW_DIR -> 2018-02-22y2Fdv9zzLVLupkl9El0dWalJAGTROLxE

目录名称是 y2Fdv9zzLVLupkl9El0dWalJAGTROLxE

试试看:

#!/bin/bash
DATAOGGI=$(date +"%Y-%m-%d")
RANDOM_STRING=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
mkdir "${DATAOGGI}${RANDOM_STRING}"

除了在这个例子中没有必要 echo -n AFAIK 的行为非常不一致,建议改用 printf