1
以前の従業員から書き直された(そして私が書いている間にドキュメントを追加する)レガシーbashコードが残っています。私はこれらの変数がローカルであると考えて、最後の2つのeval
行のポイントを取得しません。関数内のローカル変数の見かけ上無理な評価
function gen_data_dir {
local NAME="$1"
local DB_DIR_VAR="$2"
local TECH_DIR_VAR="$3"
local CFG="$DB_CONFIGS_DIR/$NAME"
if [[ ! -f "$CFG" ]]; then
echo "no config: $CFG" > /dev/stderr
return 127
fi
echo "processing config: $CFG" > /dev/stderr
local DB_DIR_="$ANNO_DB_DIR/${NAME}"
mkdir -p "$DB_DIR_" || return 127
pushd "$DB_DIR_"
LC_ALL=C date > DATES
touch _SHIT
local TECH_="$DB_DIR_/tech"
mkdir -p "$TECH_"
cat "$CFG" > "$TECH_/orig.cfg"
${GENOME_DIR}/annotation/parse_db_configs.py "$CFG" "$TECH_"
rm _SHIT
popd
eval "$DB_DIR_VAR"="$DB_DIR_"
eval "$TECH_DIR_VAR"="$TECH_"
}
何か不足していますか?そして、最初の値が決して使用されないので、DB_DIR_VAR
とTECH_DIR_VAR
をとることは無意味だと仮定するのは当然ですか?