我希望编写一个shell脚本来导出变量。
下面我列出了剧本。
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提示符下单独执行命令。
发布于 2013-08-31 12:19:34
请向我们展示脚本的更多部分,并告诉我们您需要单独执行哪些命令,并且只想简单地执行这些命令。
同时,必须使用双引号而不是单引号来展开变量:
export PATH="/home/linux/Practise/linux-devkit/bin/:$PATH"单个命令末尾的分号也是不必要的。
迄今为止:
#!/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,可以使用以下方法运行:
su -c 'sh /path/to/script.sh'注意: OP并没有明确要求使用shell脚本在交互式shell中创建导出变量的步骤。他只要求对他的剧本进行评估。他没有提到如何使用他的脚本的细节。它可能是通过使用交互式shell中的.或source实现的。它可能是一个独立的启动程序,也可能是另一个脚本中的sourced。环境变量并不是交互shell的特定变量。这个答案解决了他的问题。
发布于 2013-08-31 12:17:36
您需要以source或.的形式运行脚本
source ./myscript.sh或
. ./myscript.sh这将在现有的shell中运行,确保脚本创建或修改的任何变量在脚本完成后都可用。
只使用文件名运行脚本将在单独的子subshell中执行脚本。
发布于 2020-06-21 17:37:45
以source=的形式运行脚本,以便在调试模式下运行。
source= ./myscript.shhttps://stackoverflow.com/questions/18547881
复制相似问题