如何回显一个变量(其名称包含另一个变量)
How to echo a variable (name of which contains another varibale)
我正在编写一个小的 shell 脚本来读取和打印行
一个文件。
#!/bin/csh
set IN_FILE=
set i=1
foreach line ( "`cat $IN_FILE`" )
set F$i="`echo $line`"
echo ${F${i}}
@ i = $i + 1
end
执行后,出现以下错误
Missing '}'.
我想知道如何回显一个变量,它包含
名称中的另一个变量。
在这里找到了一个示例:https://www.unix.com/shell-programming-and-scripting/275206-issue-nesting-variables-csh.html 并尝试使其适应您的脚本
尝试:
#!/bin/csh
set IN_FILE=
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
并尝试使其适应您的脚本
我没有 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
已修复。
#!/bin/csh
set IN_FILE=
set i=1
foreach line ( "`cat $IN_FILE`" )
eval "set F$i='`echo $line`'"
eval echo ${F$i}
@ i = $i + 1
end
非常感谢 linuxfan 的提示
我正在编写一个小的 shell 脚本来读取和打印行 一个文件。
#!/bin/csh
set IN_FILE=
set i=1
foreach line ( "`cat $IN_FILE`" )
set F$i="`echo $line`"
echo ${F${i}}
@ i = $i + 1
end
执行后,出现以下错误
Missing '}'.
我想知道如何回显一个变量,它包含 名称中的另一个变量。
在这里找到了一个示例:https://www.unix.com/shell-programming-and-scripting/275206-issue-nesting-variables-csh.html 并尝试使其适应您的脚本
尝试:
#!/bin/csh
set IN_FILE=
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
并尝试使其适应您的脚本
我没有 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
已修复。
#!/bin/csh
set IN_FILE=
set i=1
foreach line ( "`cat $IN_FILE`" )
eval "set F$i='`echo $line`'"
eval echo ${F$i}
@ i = $i + 1
end
非常感谢 linuxfan 的提示