在Shell脚本中输出已复制文件的名称

时间:2012-10-18 15:14:40

标签: bash shell unix output

我正在使用bash脚本将配置文件复制到相应的目录中。我想输出我复制到用户的文件的名称。以下是我到目前为止的情况:

CONFIG_DIR="/home/stackoverflow/app/configs"
CONFIG_FILE="*.config"

cp $CONFIG_FILE $CONFIG_DIR

echo "$CONFIG_FILE was copied to $CONFIG_DIR"

我得到的输出是:

*.config was copied to /home/stackoverflow/app/configs

假设stackoverflow.config是脚本运行的目录中唯一存在的.config文件。我想说:

stackoverflow.config was copied to /home/stackoverflow/app/configs

3 个答案:

答案 0 :(得分:5)

将-v添加到复制并让它打印所有文件名(每行一个名称)或将回显更改为

echo $CONFIG_FILE was copied to $CONFIG_DIR

即。删除双引号(在本例中它们不是必需的)。

答案 1 :(得分:3)

$CONFIG移到引号之外,以便允许shell扩展其通配符:

echo $CONFIG_FILE "was copied to $CONFIG_DIR"

答案 2 :(得分:0)

CONFIG_DIR="/home/stackoverflow/app/configs"
for file in *.config
do
    cp $file $CONFIG_DIR
    echo $file was copied to $CONFIG_DIR
done