Bash:将变量传递给mv命令选项

时间:2014-12-16 16:00:07

标签: bash variables option mv

- Bash 4.1.17(与Cygwin一起运行)

您好,我正在尝试将日期传递给move(mv)命令中的--suffix选项。我能够传入一个简单的字符串(比如我的名字),但无法传递日期。如果您运行下面的脚本,您将看到带有后缀=" $ var"的mv命令但是后缀=" $ now"没有。

#!/bin/bash

dir="your directory goes here"

now="$(date "+%m/%d/%y")"

var="_CARL!!!"

echo "$now"

echo "$var"

cd "$dir"

touch test.txt

# error if already exists
mkdir ./stack_question

touch ./stack_question/test.txt

mv -b --suffix="$var" test.txt ./stack_question/

这个想法是,如果test.txt在尝试移动文件时已经存在,那么该文件将附加一个后缀。因此,如果您使用以下命令运行此脚本:

--suffix="$var"

您将看到 stack_question 目录包含两个文件:

test.txt& test.txt_CARL !!!

但是,如果您使用以下命令运行此脚本

--suffix="$now"

你会看到 stack_question 目录中只包含:

的test.txt

对此的任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这是因为您在日期格式中嵌入了/尝试

now="$(date +%m_%d_%y)"