shell脚本中如何输出变量的变量的值_shell脚本中如何输出变量的变量例子

更新时间:2019-09-17    来源:背景特效    手机版     字体:

【www.bbyears.com--背景特效】


问题背景:

#!/bin/sh
PHP=100;
JAVA=101
LANGUAGE="PHP JAVA"
for lang in $LANGUAGE
do
      //这里想逐行输出100, 101  该怎么写呢?
done

解决方法-数字字符串:

#!/bin/sh PHP=100;
JAVA=101
LANGUAGE="PHP JAVA" for lang in $LANGUAGE do
    echo $[$lang]
done

解决方法-字母字符串:

#!/bin/sh
LANGUAGE=(PHP JAVA)
LANGUAGE_VALUE=(/data/1 /data/2)
for ((i=0;i< ${#LANGUAGE[@]};i++))
do
    echo ${LANGUAGE_VALUE[$i]}
done


shell 脚本导出环境变量


如果你想用一个bash脚本来导出一些环境变量给bash shell使用,就会碰到一些问题。因为每一个bash脚本是唯一的一个会话,这些环境变量只会在其自己的脚本里起作用,对于下一次要用到的这些环境变量,bash shell中还是不存在。

例如:

在 env.sh 脚本中包含有下面的语句:

export HELLO=hello
export HELLO2=world
当你运行完 env.sh 以后,再接着执行 echo $HELLO $HELLO2 在bash shell中,你不会得到任何东西。

正确的导出环境变量的方法是 使用source命令来从你的bash脚本中导出环境变量。

$ source env.sh
$ echo $HELLO $HELLO2
$ hello world
你能放env.sh脚本到 /usr/bin 目录下,接着在任何路径下执行 source env.sh ,它都能很好地工作。在这里你要使用source命令来代替直接执行运行脚本。但我意识到,很多使用者没有意识到source命令的作用。

linux的世界中,你还有另外一种方法来使用这些环境变量在单独的一个环境中,而不影响其他shell的使用。就是

bash -i

通过bash脚本创建一个新的交互bash会话,当你不在使用它的时候,通过exit来退出即可。
下面为例子:
############################################
build_arm.sh

#!/bin/bash
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi-
export PS1="\e[31mBUILD_ARM \w \e[m\n\$"
############################################

$ bash -i

接着,
$./build_arm.sh

BUILD_ARM ~ $

当你不在使用它的时候,
BUILD_ARM ~ $ exit

$

这样就退出到起初的bash shell了。

本文来源:http://www.bbyears.com/wangyetexiao/68255.html

热门标签

更多>>

本类排行