首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置环境变量的Shell脚本

设置环境变量的Shell脚本
EN

Stack Overflow用户
提问于 2013-08-31 11:57:31
回答 5查看 230.1K关注 0票数 116

我希望编写一个shell脚本来导出变量。

下面我列出了剧本。

代码语言:javascript
复制
echo "Perform Operation in su mode"
export ARCH=arm
echo "Export ARCH=arm Executed"
export PATH='/home/linux/Practise/linux-devkit/bin/:$PATH';
echo "Export path done"
export CROSS_COMPILE='/home/linux/Practise/linux-devkit/bin/arm-arago-linux-gnueabi-';
echo "Export CROSS_COMPILE done"

但这似乎不能正常工作。我必须在shell提示符下单独执行命令。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-08-31 12:19:34

请向我们展示脚本的更多部分,并告诉我们您需要单独执行哪些命令,并且只想简单地执行这些命令。

同时,必须使用双引号而不是单引号来展开变量:

代码语言:javascript
复制
export PATH="/home/linux/Practise/linux-devkit/bin/:$PATH"

单个命令末尾的分号也是不必要的。

迄今为止:

代码语言:javascript
复制
#!/bin/sh
echo "Perform Operation in su mode"
export ARCH=arm
echo "Export ARCH=arm Executed"
export PATH="/home/linux/Practise/linux-devkit/bin/:$PATH"
echo "Export path done"
export CROSS_COMPILE='/home/linux/Practise/linux-devkit/bin/arm-arago-linux-gnueabi-' ## What's next to -?
echo "Export CROSS_COMPILE done"
# continue your compilation commands here
...

对于su,可以使用以下方法运行:

代码语言:javascript
复制
su -c 'sh /path/to/script.sh'

注意: OP并没有明确要求使用shell脚本在交互式shell中创建导出变量的步骤。他只要求对他的剧本进行评估。他没有提到如何使用他的脚本的细节。它可能是通过使用交互式shell中的.source实现的。它可能是一个独立的启动程序,也可能是另一个脚本中的sourced。环境变量并不是交互shell的特定变量。这个答案解决了他的问题。

票数 58
EN

Stack Overflow用户

发布于 2013-08-31 12:17:36

您需要以source.的形式运行脚本

代码语言:javascript
复制
source ./myscript.sh

代码语言:javascript
复制
. ./myscript.sh

这将在现有的shell中运行,确保脚本创建或修改的任何变量在脚本完成后都可用。

只使用文件名运行脚本将在单独的子subshell中执行脚本。

票数 294
EN

Stack Overflow用户

发布于 2020-06-21 17:37:45

以source=的形式运行脚本,以便在调试模式下运行。

代码语言:javascript
复制
source= ./myscript.sh
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18547881

复制
相关文章

相似问题

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