我有变量 $foo=" 某事"
,并想使用:
bar="foo"; echo $($bar)
得到"东西"的回响。
在shash 中,您可以使用 ${! 可变{%/code> 来使用变量变量。
foo="something"
bar="foo"
echo "${!bar}"
# something
被接受的答案是巨大的。 然而, @ Edison 询问了如何对数组做同样的事情。 关键在于您想要您设置的变量持有“ [@] ”, 使数组以“! ” 扩展。 请检查此函数以倾弃变量 :
$ function dump_variables() {
for var in "$@"; do
echo "$var=${!var}"
done
}
$ STRING="Hello World"
$ ARRAY=("ab" "cd")
$ dump_variables STRING ARRAY ARRAY[@]
这一产出:
STRING=Hello World
ARRAY=ab
ARRAY[@]=ab cd
当仅给定 ARRAY
时,第一个元素显示为 !
所扩展的内容。通过给定 ARRAY[@]
格式,您可以得到数组及其所有值的扩展。
eval回声 "$bar"
将做到这一点。
为了更清楚地说明如何用数组来进行:
arr=( a b c )
# construct a var assigning the string representation
# of the variable (array) as its value:
var=arr[@]
echo "${!var}"
I m attempting to write a bash script to parse out the following log file and give me a list of CURRENT players in the room (so ignoring players that left, but including players that may have rejoined)...
How can I check the file encoding in a shell script? I need to know if a file is encoded in utf-8 or iso-8859-1. Thanks
I like to write bash shell scripts on my iPhone, put them in an app folder with an icon, plist, etc., so they execute like apps by tapping their icon on SpringBoard. This is not interactive like ...
From a programming standpoint, when you set the bash shell to use vi or emacs via set -o vi or set -o emacs What is actually going on here? I ve been reading a book where it claims the bash shell ...
I am construcing a command in bash dynamically. This works fine: COMMAND="java myclass" ${COMMAND} Now I want to dynamically construct a command that redirectes the output: LOG=">> myfile.log ...
I want perform sha1sum file1 and sha1sum file2 and perform bitwise OR operation with them using bash. Output should be printable i.e 53a23bc2e24d039 ... (160 bit) How can I do this? I know echo $(( ...
I m 试图撰写一个双面文字,处理一个文件清单,其名字在投入档案中每栏一栏储存,就像一个一样。
Is it possible to set the Screen Title using a shell script? I thought about something like sending the key commands ctrl+A shift-A Name enter I searched for about an hour on how to emulate ...