shell 为什么我在阅读用户输入时得到一个空字符串?[关闭]

332nm8kg  于 10个月前  发布在  Shell
关注(0)|答案(1)|浏览(133)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
23天前关闭
Improve this question
我正在尝试做类似的事情。

#!/bin/bash
readonly bkp_path="x01/trdprod"
bkp_location=" "
bkp_dir=" "

function crt_bkp_dir(){
    bkp_dir=$(whiptail --title "Test" --inputbox "Insert backup directory name" 10 100\
--ok-button "Create" 3>&1 1>&2 2>&3)
    bkp_location="$bkp_path/$bkp_dir"
}

function main(){
    crt_bkp_dir
    echo $bkp_location
}

main

字符串
我需要得到输出x01/trdprod/test。相反,我得到了一个空的输出。有人能告诉我我做错了什么,以及如何做对吗?
---更新----我更新了我最初的问题。我使用“whiptail”程序来显示对话框和获取用户输入。当我在crt_bkp_dir函数中回显$bkp_location时,我得到了所需的输出。但在main函数中没有。

dpiehjr4

dpiehjr41#

bkp_dir=$(read user_input)将变量bkp_dir设置为read user_input的 * 输出 *,通常为空(即,bkp_dir最终设置为空白)。
尝试以下操作:

# replace this:

bkp_dir=$(read user_input)

# with this:

read bkp_dir

字符串

相关问题