【发布时间】:2019-09-20 07:34:47
【问题描述】:
我有一个很少有函数定义的主脚本。使用子脚本即时尝试调用主脚本并将参数传递给函数。这里的问题是我的主脚本被执行了两次。 1.每次我调用我的子脚本时,首先主脚本中的所有函数都在没有任何参数的情况下执行(即空参数) 2. 然后第二次参数值被传递并按预期成功执行函数。
请告诉我如何避免执行上面指定的步骤 1。
我尝试过使用 source (or) 。然后在子脚本中指定主脚本,然后指定函数名称和参数。但它不起作用。
子脚本:
source <directory_path>/master.sh
add '123' 'get' 'R'
主脚本:
#! /bin/bash
add()
{
exec &> $1_$(date "+%Y%m%d%H%M").log
Change=$1
Command=$2
if [[ $Command == "get" ]];
then Command_1="getfacl"
elif [[ $Command == "set" ]];
then Command_1="setfacl"
elif [[ $Command == "ch" ]];
then Command_1="chown"
else Command_1="ls"
fi
Tag=$3
if [[ -z "$Tag" ]];
then Tag=""
else Tag="-$Tag"
fi
}
add;
子脚本:
source <directory_path>/master.sh
add '123' 'get' 'R'
根据脚本只能生成一个文件。但实际结果会生成2个文件。
预期结果
123_201909201012.log
实际结果
_201909201012.log
123_201909201012.log
【问题讨论】: