如何添加将更改 Linux 中脚本其余部分路径的用户输入框

How to add user input box that will change path for the rest of the script in Linux

我正在创建一个脚本,该脚本要求根据主题编号更改目录,该主题编号由用户确定。我不想让用户手动编辑代码,而是希望弹出一个框询问

What is the subject number: emsint____FSL

其中“____”是用户输入的数字。输入此数字后,我希望它在整个代码的其余部分自动更改(即 ____ 出现的每个实例)。

# Location of Subject
cd /mnt/netshare/imaging/emoProc_MS_Intv_NMSS/data
mkdir emsint____FSL

cd /mnt/netshare/imaging/emoProc_MS_Intv_NMSS_data_emsint____FSL
mkdir session1 session2

cd /mnt/netshare/imaging/emoProc_MS_Intv_NMSS/data/emsint___FSL/session1 
mkdir control exper1 exper2

虽然您要求弹出框输入,但我认为这不是真正需要的,因为您可以将所有用户交互保留在键盘上(不需要单击鼠标)。

如果我正确理解了你的问题,这应该对你有用:

#!/bin/bash
printf "What is the subject number? "
read subNum

# Location of Subject
cd /mnt/netshare/imaging/emoProc_MS_Intv_NMSS/data
mkdir emsint"${subNum}"FSL

cd /mnt/netshare/imaging/emoProc_MS_Intv_NMSS_data_emsint"${subNum}"FSL
mkdir session1 session2

cd /mnt/netshare/imaging/emoProc_MS_Intv_NMSS/data/emsint"${subNum}"FSL/session1
mkdir control exper1 exper2

还有其他快捷方式和代码减少可以在这里完成,最值得注意的是

#!/bin/bash
dataDir="/mnt/netshare/imaging/emoProc_MS_Intv_NMSS/data"

printf "What is the subject number? "
read subNum

# Location of Subject
cd "$dataDir"
mkdir emsint"${subNum}"FSL

cd "${dataDir}/emsint${subNum}FSL"
mkdir session1 session2

cd "${dataDir}/data/emsint${subNum}FSL/session1"
mkdir control exper1 exper2

IHTH