首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将argumento传递给bash脚本时出现奇怪错误

将argumento传递给bash脚本时出现奇怪错误
EN

Stack Overflow用户
提问于 2013-05-28 06:11:28
回答 2查看 84关注 0票数 1

我不是bash脚本编写方面的专家,但我真的不明白这里附加的是什么。我的脚本是这样的:

代码语言:javascript
复制
#!/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调用它,输出是:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2013-05-28 06:19:19

源脚本在当前环境中运行,而不更改位置参数值。被调用脚本的"$@“值与调用脚本的值相同。

您可以使用

代码语言:javascript
复制
set --

清除位置参数。如果需要保存它们,请使用

代码语言:javascript
复制
pos_par=("$@")
set --
source script.sh
set -- "${pos_par[@]}"
票数 3
EN

Stack Overflow用户

发布于 2013-05-28 06:21:24

看起来您正在使用-v选项调用脚本文件。请注意,除非为source命令提供位置参数,否则source不会更改命令行参数($1)的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16781179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档