嵌套 for 循环后未定义变量

时间:2021-01-23 18:30:19

标签: bash for-loop undefined-variable

我正在尝试创建一个脚本,允许用户从安装的卷中选择备份目的地。

虽然我有第一稿在工作,但它有重复,我试图通过在嵌套的 for 循环中重建来删除这些重复,但是到脚本结束时,我的变量变得未定义,我看不出我犯了什么错误制作。

为什么我的变量定义在第 19 行而不是第 27-29 行?

我是初学者,如果答案显而易见,请见谅。

imap_dfr(allEffects(m2), ~ as_tibble(.x) %>% 
     mutate(dname = grep("d_", names(.), value = TRUE)) %>%
     select(dname, dvalue = starts_with('d_'), grade, fit) %>%
     mutate(grp = .y)) %>%
   unite(dname, dname, dvalue, sep=" = ") %>%
   filter(dname  %in% c("d_hyp = 1", "d_math = 1")) %>% 
   ggplot(., aes(x = grade, y = fit, colour = dname, group = dname)) + 
     geom_line() + 
     scale_colour_discrete(guide = 'none') +  
     geom_dl(aes(label = dname), method="last.qp", cex = 0.6) + 
     theme_bw()

1 个答案:

答案 0 :(得分:0)

你可以这样做:

#!/bin/bash

VOLUMES=$(ls /volumes)
DATA=''

function selectDestination() {
    echo "Select your ${1}"
    echo
    select VOLUME_VARIABLE in $VOLUMES
    do
        echo
        echo "${1}: $VOLUME_VARIABLE"
        echo
        break
    done

    DATA=${VOLUME_VARIABLE}
}

echo

selectDestination 'Working Drive'
WORKING_DRIVE=${DATA}
selectDestination 'Master Drive'
MASTER_DRIVE=${DATA}
selectDestination 'Clone Drive'
CLONE_DRIVE=${DATA}


echo "Working Drive is: ${WORKING_DRIVE}"
echo "Master Drive is: ${MASTER_DRIVE}"
echo "Clone Drive is: ${CLONE_DRIVE}"
相关问题