我正在撰寫一個小的 shell 腳本來讀取和列印檔案的行。
#!/bin/csh
set IN_FILE=$1
set i=1
foreach line ( "`cat $IN_FILE`" )
set F$i="`echo $line`"
echo ${F${i}}
@ i = $i 1
end
執行后,我收到以下錯誤
Missing '}'.
我想知道如何回顯一個變數,它的名稱中包含另一個變數。
uj5u.com熱心網友回復:
我沒有 csh,所以用 bash 試試這個。test.sh 的內容為:
i=1
eval "F$i=\"this is a line\""
eval echo "test: " \${F$i}
echo "F1 is" $F1
它似乎有效:
/tmp$ ./test.sh
test: this is a line
F1 is this is a line
uj5u.com熱心網友回復:
在此處找到一個示例:https : //www.unix.com/shell-programming-and-scripting/275206-issue-nesting-variables-csh.html 并嘗試將其調整為您的腳本
嘗試:
#!/bin/csh
set IN_FILE=$1
set i=1
set j=1
foreach line ( "`cat $IN_FILE`" )
#set F$i="`echo $line`"
#echo ${F${i}}
set test=( F${i} )
echo "$test[$j]"
@ i = $i 1
end
在這里找到了一個例子:https : //www.unix.com/shell-programming-and-scripting/275206-issue-nesting-variables-csh.html
并嘗試使其適應您的腳本
uj5u.com熱心網友回復:
修復。
#!/bin/csh
set IN_FILE=$1
set i=1
foreach line ( "`cat $IN_FILE`" )
eval "set F$i='`echo $line`'"
eval echo \${F$i}
@ i = $i 1
end
非常感謝 linuxfan 的提示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/376533.html
上一篇:帶有選項的Bashwhile回圈
