這是第一次使用shell腳本(#!/ bin/sh),我一直在通過它閱讀教程等工作但是我被困在一個關鍵的這個讀寫值..
我試着在密鑰來讀取=從表單的配置文件值對
key1_begin=abc
key1_end=def
key2_begin=123
key2_end=jkl
.. and so on
我想用戶的參數傳遞如腳本
something.sh 1 x y z
其中第一個參數將用作用於修改相應鍵的那個參數。所以之後我已經檢查目錄是否存在以及該文件是否存在我使用
source config.cfg
我然後用1 ID = $保存ID,並使用
echo key${ID}_begin
所以讀來獲得訪問鍵源它關鍵的價值將是
echo key${ID}_begin = $[key${ID}_begin]
,我希望得到「key1_begin = ABC」,而是不斷收到「key1_begin = 0」。然而,同樣的命令似乎對數字起作用。例如,使用ID爲2的這個命令給出「key2_begin = 123」
有人可以請指出我正確的方向,爲什麼這對數字而不是字母正常工作?
我該如何改變變量的值?我目前使用的「EVAL」,但是這一次似乎只與數字工作
[ ! -z $2 ] && eval key${ID}_end=$3
真的很感激任何意見/指針與此有關。\
謝謝
如果你希望能夠只使用bash的語法(而不是寫POSIX SH) ,即使'/ bin/sh'是'/ bin/bash'的符號鏈接,你應該用'#!/ bin/bash'而不是'#!/ bin/sh'開始你的腳本,它會禁用當調用「/ bin/sh」時,非POSIX擴展的數量。 – 2012-05-17 21:09:57