如果我在shell腳本中設置了一個變量,然後嘗試使用它來創建另一個變量,它似乎並沒有被正確替換。例如:bash:變量未按預期展開
#!/bin/bash
X=/software/xxx
echo variable X = $X
echo path using variable: $X/yyy
echo path without variable: /software/xxx/yyy
此輸出:
variable X = /software/xxx
/yyy using variable: /software/xxx
path without variable: /software/xxx/yyy
我曾預計第二輸出線爲:
path using variable: /software/xxx/yyy
我試圖引號的各種組合和使用$ {X},但都無濟於事。
我是新來的shell腳本(來自Windows背景),所以我肯定有一些非常簡單的東西,我在這裏失蹤。
如果有人想知道爲什麼我想這樣做,背景是,我需要編寫一個shell腳本,它需要一個相對路徑名參數,確定其絕對路徑名,然後設置CLASSPATH中的一些jar文件
#!/bin/bash
DIR=`readlink -fn $1`
export CLASSPATH=$DIR/x.jar:$DIR/y.jar
java progname
報價通常在世界的問題的原因。 – fedorqui 2014-11-24 12:36:37
我剛剛運行您的示例,並獲得了預期輸出。嘗試使用bash -x運行並查看$ X的設置。我懷疑X不是你想象的那樣。 – Bitdiot 2014-11-24 12:52:21