我希望将变量patientid
从母脚本传递到子脚本。该变量应对应于相关目录中的文件夹名称(一次一个)。
母文如下:
#!/bin/sh
set verbose
# (1) have folder that contains individual patient ID folders
# (2) do for loop at at beginning of script:
counter=0
for folder in /Directory/*
do
cd $folder
#Obtain Patient ID as variable
patientid=`basename $folder`
#Pass "patientid" variable to each script you are running
/Directory/subscript.sh $patientid
done
然后,在下标中,变量按如下方式传递:
#!/bin/sh
set verbose
patientid=$1
cd /Directory/$patientid
###etc.
问题是,在输出中,patientid
出现为verbose
(即当它应包含该原始目录中的文件夹名称时,使用的目录为/Directory/verbose
)。知道问题是什么吗?
答案 0 :(得分:0)
set verbose
删除此行或将其更改为:
set -o verbose
当您撰写set verbose
时,$1
会更改为字符串verbose
,这解释了为什么$patientid
最终设置为verbose
。