传递的变量不正确

时间:2015-02-19 17:10:56

标签: bash

我希望将变量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 )。知道问题是什么吗?

1 个答案:

答案 0 :(得分:0)

set verbose

删除此行或将其更改为:

set -o verbose

当您撰写set verbose时,$1会更改为字符串verbose,这解释了为什么$patientid最终设置为verbose