很抱歉,过去是否已经回答过类似问题,但我找不到它。我正在编写一个脚本来执行一些内部管理任务,而我陷入了下面的步骤。为了记录在案,它是一个脚本,它读取配置文件,以便能够在不同环境中将其用作标准协议。
问题出在此代码上:
# Check if destination folder exist, if not create it.
if [ ! -d ${V_DestFolder} ]; then # Create folder
F_Log "${IF_ROOT} mkdir -p ${V_DestFolder}"
${IF_ROOT} mkdir -p ${V_DestFolder}
continue
fi
# If movement, check write permissions of destination folder.
V_CheckIfMovement=`echo $1|grep @`
if [ $? -eq 0 ]; then # File will be moved.
V_DestFolder=`echo $1|awk -F"@" {'print $2'}`
if [ ! -w ${V_DestFolder} ]; then # Destination folder IS NOT writable.
F_Log "Destination folder ${V_DestFolder} does not have WRITE permissions. Skipping."
continue
fi
fi
基本上,我需要(在此步骤中)将某些文件从一条路径移动到另一条路径。
它检查文件夹(从配置文件读取的名称)是否存在,如果不存在,将创建该文件夹,然后检查该文件夹是否具有写权限并移动文件。
在这里您可以看到在此步骤中读取的配置文件部分:
app/tom*/instances/*/logs|+9|/.*\.gz)$/|move@/app/archive/tom*/logs
我需要说的是,当我将目标的tom *更改为任何内容(例如“测试”或没有*的任何单词)时,文件已经正确移动了。
我需要知道的是如何在目标的“ tom *”中使用变量。变量在源代码中应包含与tom *相同的名称,我将其用作单元格的名称。
这是因为我使用了不同的tomcat单元格,并带有参考tom7或tom8加上三个字母来描述每个。例如tom7dog或tom7cat。
答案 0 :(得分:0)
您应该给外壳一个评估的机会。
V_DestFolder=`echo $1|awk -F"@" {'print $2'}`
for p in ${V_DestFolder}; do
if [ ! -w ${p} ]; then