我不是bash脚本编写方面的专家,但我真的不明白这里附加的是什么。我的脚本是这样的:
#!/usr/bin/env bash
echo "calling asetup"
export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh
asetup 17.6.0,slc5
echo "Now running..."
echo "argument $@"我用as ./myscript -v调用它,输出是:
calling asetup
atlasLocalSetup.sh: invalid option -- 'v'
'atlasLocalSetup.sh --help' for more information
./prova.sh: line 12: asetup: command not found
Now running...
argument -v在第二行,什么是atlasLocalSetup.sh: invalid option -- 'v'??为什么使用-v选项调用atlasLocalSetup.sh?
发布于 2013-05-28 06:19:19
源脚本在当前环境中运行,而不更改位置参数值。被调用脚本的"$@“值与调用脚本的值相同。
您可以使用
set --清除位置参数。如果需要保存它们,请使用
pos_par=("$@")
set --
source script.sh
set -- "${pos_par[@]}"发布于 2013-05-28 06:21:24
看起来您正在使用-v选项调用脚本文件。请注意,除非为source命令提供位置参数,否则source不会更改命令行参数($1)的值。
https://stackoverflow.com/questions/16781179
复制相似问题