我正在尝试将以下内容作为应用程序启动脚本的一部分运行:
for file in $TEMPLATE_FOLDER/*
do
filename='basename $file'
echo "Processing $filename"
if [ -f "$CONF_FOLDER/$filename" ]
then
echo "Using existing $filename"
else
echo "Creating $filename from template $file"
cp $file $CONF_FOLDER
fi
done
但输出是:
Processing basename $file
Creating basename $file from template ../conf/templates/conf-TEST/log4j.xml
不评估basename命令,只打印出来。
当我从提示符运行命令时,它可以正常工作。
Bash版本:
bash -version
GNU bash, version 3.00.16(1)-release (sparc-sun-solaris2.10)
Copyright (C) 2004 Free Software Foundation, Inc.
谁能看到我做错了什么?
谢谢!
答案 0 :(得分:4)
由于系统有bash
,并且该脚本适用于bash
,因此首先将脚本的第1行从#!/bin/sh
更改为#!/bin/bash
。
然后改变这一行:
filename='basename $file'
对此:
filename=`basename $file`