这个符号在ksh中的意思是“#?”

问题描述 投票:0回答:1

什么是“#?”在ksh脚本中意味着什么?例如:

tt=03
while [ "$tt" !=' ' ];
do
 tt=${tt#"?}
done
echo $tt

我在这里什么也得不到。所以呢 ”#?”意味着在这个脚本?谢谢。

ksh
1个回答
1
投票

假设在downtheroad建议的时候修正了句法(在[和之前]之后需要空白)并且省略“在tt=${tt#"?}中(省略的版本是你引用的)。

此外,while条件下的测试需要针对空string'',否则循环不会终止。

  tt=${tt#?}

从字符串中删除第一个字符。

看到这个测试程序(我添加了2个回声和父母,以便能够在切割之前和之后看到tt中tt的确切内容:

tt=03
while [ "$tt" != '' ] 
do
 echo "A: (tt=$tt)"
 tt=${tt#?}
 echo "B: (tt=$tt)"
done
echo $tt

给出这个结果(注意最后一个回声的空最后一行):

A: (tt=03)
B: (tt=3)
A: (tt=3)
B: (tt=)

© www.soinside.com 2019 - 2024. All rights reserved.