本文章重點的介紹一下關于shell變量知識點了,文章介紹的了一個shell變量中變量同時后面還介紹調用了系統環境變量的方法,大家一起來看看.
問題背景:
- #!/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 //Vevb.com
- //接著,
- $./build_arm.sh
- BUILD_ARM ~ $
- //當你不在使用它的時候,
- BUILD_ARM ~ $ exit
- $
這樣就退出到起初的bash shell了.
|
新聞熱點
疑難解答