shell - 在 makefile 中使用 $RANDOM

标签 shell makefile terminal

我正在制作一个 makefile 来重命名其中包含随机数的文件(我是 shell 脚本的新手)。我不明白为什么,但是当我运行文件 $rand 时,它的值被赋予了“ANDOM”。当我在 makefile 之外运行它时,它可以工作。

我在 Mac os 终端中运行它,以防它有帮助。

all: renamefiles

renamefiles:
    rand=$RANDOM && mv myfile.css $rand-myfile.css && mv myotherfile.css $rand-myotherfile.css

最佳答案

  • 使用日期/时间戳以便按日期顺序列出重命名的文件不是更容易/更好吗?
  • 您需要使用两个 $签到 makefile每个$你想让 shell 看到。

  • 因此:
    all: renamefiles
    
    renamefiles:
        rand=$$RANDOM && \
        mv myfile.css      $$rand-myfile.css && \
        mv myotherfile.css $$rand-myotherfile.css
    

    或者,使用日期/时间戳:
    all: renamefiles
    
    renamefiles:
        time=$$(date +'%Y%m%d-%H%M%S') && \
        mv myfile.css      $$time-myfile.css && \
        mv myotherfile.css $$time-myotherfile.css
    

    关于shell - 在 makefile 中使用 $RANDOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14408648/

    相关文章:

    qt - 如何从 qmake 获取 Makefile

    linux - AWK 初级条形图/直方图

    terminal - 如何确定 ANSI 终端的大小?

    terminal - 如何从终端运行 Julia 脚本和函数?

    c++ - Automake 不在子目录中生成 Makefile.in

    php - 用于在一系列文件中进行 grep 的 Shell 脚本

    javascript - 如何从命令行在 html 中运行 javascript 并包含参数?

    linux - 当 shell 脚本回显 "*"时,为什么它会列出文件和目录?

    linux - 在 screen 中启动脚本

    c - 我的交叉编译 makefile 有什么问题?