${!变量:0:1}在bash中是什么意思?
我一直在读一个剧本,遇到了一个超出我理解范围的问题。代码片段如下所示:${!变量:0:1}在bash中是什么意思?,bash,shell,Bash,Shell,我一直在读一个剧本,遇到了一个超出我理解范围的问题。代码片段如下所示: while getopts ":h-:" OPTION; do case "$OPTION" in -) case "$OPTARG" in time) if [ ! -z "${!OPTIND:0:1
while getopts ":h-:" OPTION; do
case "$OPTION" in
-)
case "$OPTARG" in
time)
if [ ! -z "${!OPTIND:0:1}" -a ! "${!OPTIND:0:1}" = "-" ]; then
Time="${!OPTIND}"
OPTIND=$(( $OPTIND + 1 ))
fi ;;
esac
;;
h) Usage 0;;
# More code
esac
done
shift $((OPTIND - 1))
我正在努力解决的问题是if条件。这到底是什么意思
我知道getopts以及它提供的相关变量OPTIND和OPTARG,但是很难找到if语句满足的条件
如果有人能向我解释这一点,那将非常有帮助
提前感谢假设您有以下VAR:
foo=bar
bar=0123456789
代码
会给你价值$bar!这就是所谓的间接扩张。该代码:
echo ${bar:0:3}
012
将返回$bar的前3个符号,这类似于python中的切片。
现在,让我们组合这些命令:
echo ${!foo:0:3}
012
我们得到$bar的前3个符号假设您有以下变量:
foo=bar
bar=0123456789
代码
会给你价值$bar!这就是所谓的间接扩张。该代码:
echo ${bar:0:3}
012
将返回$bar的前3个符号,这类似于python中的切片。
现在,让我们组合这些命令:
echo ${!foo:0:3}
012
我们得到$bar的前3个符号附录-如果变量是数组标准或关联,则!对mean的更改显示索引。射线=a b c;echo${!ray[@]}输出0 1 2。附录-如果变量是数组标准或关联的,则!对mean的更改显示索引。射线=a b c;echo${!ray[@]}输出0 1 2。