sh腳本環境變數
1. linux 在/usr/bin下的sh腳本不能隨處執行的疑問
環境變數只保證在執行命令時,從其中路徑搜索可執行文件可不是說,腳本中指定的文件名也會從這些目錄搜索所以 腳本中的more bin.sh改成 more "$0"2. linux下shell的腳本無法獲取別的用戶的環境變數,該怎麼解決
linux上遇到點問題,也沒找到linux社區。 我是用root用戶在/etc/profile中修改了java_home和catalina_home,這也能在所有其他用戶環境下使用,就不用挨個設置了 可是我在另外一個用戶下寫了一個sh腳本:#!/bin/shecho $CATALINA_HOME 無法列印出$CATALINA_HOME的內容,只有一個空行。但是在命令提示符下輸入:echo $CATALINA_HOME 時就能列印出$CATALINA_HOME 的具體路徑。 ------解決方案--------------------------------------------------------探討引用:那個用戶需要重新登錄,環境變數才能生效+_+------解決方案-------------------------------------------------------- 在shell腳本中執行cd命令,會臨時進入那個路徑,腳本執行結束時,你的當前路徑又回到執行shell腳本之前的狀態。 你可以這樣執行你的腳本,注意前面的點 . yourshell ------解決方案--------------------------------------------------------探討在shell腳本中執行cd命令,會臨時進入那個路徑,腳本執行結束時,你的當前路徑又回到執行shell腳本之前的狀態。 你可以這樣執行你的腳本,注意前面的點 . yourshell ------解決方案-------------------------------------------------------- 執行腳本之前,手工執行 echo $catalina_home 看看 ------解決方案-------------------------------------------------------- 你把這個變數置為環境變數試試 ------解決告掘方案-------------------------------------------------------- 這是不可能事件,shell命令行里可以用,腳本里肯定也可以用,除非你的/etc/profile里沒有export出去,襪鏈核那麼相當於在shell里定義了一個普通變數,執行腳本的子進程自然不會見到這個變數,因為只有變數export成為shell的環境變數,才會被子進程繼承環境變喚岩量。
3. 如何在shell腳本中使用變數
1、linux shell中的變數一般定義格式為:var=value。其中var是變數名稱,=是賦值,value是給變數賦的值。比如下面的變數定義。
a=12;
b="helloworld"
2、注意變數名稱的第一個字元不可以是數字,但是可以是下劃線。如下示例則為非法的變數名。
3、要使用變數的值,在變數前面加上$符號即可。比如下面的示例:
123=123//這是錯誤的變數名稱
_123=123//這是合法的。
4. sh腳本中的系統環境變數如何更新
可以在shell里這樣寫:export HOME=『/home/sybase』
也可以調用系統的環境變數。找到環境變數文件
if [ -f /etc/init.d/functions ];
then
. /etc/init.d/functions
5. shell 通過傳入的參數名去取環境變數
shell腳本中用$1取得第一襲粗猜拍型個參數PARAM,
再根據此變數名取得環境變數:
evalecho$$1
測凳碰試:
$a=3
$b=a
$evalecho$$b
3
6. 在執行a.sh這個shell腳本時會調用shell腳本b.sh,怎麼通過a.sh給b.sh中環境變數重新賦值
使用 . 可以把另一個腳本讀進來,,然後就可以引用其變數了
如
. /path/b.sh
b中的變數直接引用
7. windows怎麼運行shell腳本
在工作中情況會在碰到linux下進行執行shell的腳本,而就會使用shell的腳本,但經常使用的Windows的系統,而想在Windows電腦中進行直接shell的腳本,而不用再進行學習其它的腳本語言。
工具/原料
Windows
git
方法/步驟
1、首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。
8. 在shell(#!/bin/sh)腳本中怎麼使用expect命令,需要添加什麼環境變數嗎,正確即給分
首先你在命令行執行env expect,看expect能不能用,如果不能用,那麼你需要找到expect執行文件路徑,加入到PATH環境變數中去。
然後就可以在shell中使用了,有兩種方式實現:
1.用here document
2.用expect -c
$cat 1.sh
#!/bin/sh
output=`expect <<EXP
puts "hello world"
EXP
`
echo "expect 1 output:"
echo $output
echo
echo "expect 2 output:"
expect -c 'puts "hello world!"'
$chmod 777 1.sh
$./1.sh
expect 1 output:
hello world
expect 2 output:
hello world!