2013-04-15 68 views
0

正在試圖安裝一個腳本與外部配置文件,但沒有運氣剛開它的工作:「空」變量時,點採購在bash腳本配置文件

我有我想要的配置文件聲明我的變量:

#!/bin/bash 
screenname=template 

而我的腳本在哪裏我將這個文件分組。

#!/bin/bash 
. config.sh 
echo $screenname 

screen -S $screenname -X stuff "Test\015" 
screen -S template -X stuff "Test\015" 

輸出:

template 
No screen session found. 

有一個名爲>模板<一個屏幕,你可以看到$屏幕名具有>模板<值,但第一個屏幕命令仍然沒有返回無屏會議發現...

希望有人能幫助我這個愚蠢的事情.. 謝謝

回答

0

認沽一個set -x在腳本執行「dotsourcing」(shebang行#!/bin/bash下)頂部:

#!/bin/bash 
set -x 
. config.sh 
echo $screenname 
: 
rest of script 

這將輸出的每一行,因爲它的解釋,執行前,應該幫助你在試圖找出爲什麼它不起作用。您可能還需要添加:

echo "[$screenname]" 
echo "${#screenname]" 

得到界定版本和長度。

對這個問題的一些可能性:

  • 可能需要導出screenname變量(雖然我不這麼認爲在這種情況下,由於bash本身應該解釋環境變量)。
  • 變量中的一些隱藏字符。

雖然我再次強調你應該執行建議的步驟來縮小或定位問題,而不是依靠猜測。

+0

Windows中的腳本編寫是一個壞主意; D謝謝你的提示 - 這是一個換行符(+ screen -S $'template \ r'-X stuff'Test \ 015' - >沒有找到屏幕會話。 – fr34kyn01535