bash:什么"!" 意思是回声"$ {!var}"?

use*_*574 1 bash

我在某人的shell脚本文件中看到它.

#!/bin/bash

var=...

echo "${!var}"
Run Code Online (Sandbox Code Playgroud)

什么"!" 这意味着什么

Bil*_*ill 7

如果参数的第一个字符是感叹号(!),则引入一个变量间接的级别.Bash使用从参数的其余部分形成的变量的值作为变量的名称; 然后展开此变量,并将该值用于替换的其余部分,而不是参数本身的值.这被称为间接扩张.

这里有例外,这里有解释

例:

$ x=y
$ y=1
$ echo "${x}"
y
$ echo "${!x}"
1
Run Code Online (Sandbox Code Playgroud)