这个符号是什么意思“#”?在ksh

时间:2019-02-21 03:37:05

标签: ksh

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

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

我什么都不会得到。所以呢 ”#?”这意味着什么?谢谢。

1 个答案:

答案 0 :(得分:1)

假设在路上建议纠正的语法(在[和之前]后需要空白),并且省略tt=${tt#"?}中的“ (省略的版本是您引用的内容。

同时,while条件下的测试必须针对空字符串'' ,否则循环不会终止。

  tt=${tt#?}

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

请参阅此测试程序(我添加了2个回声和parens,以便能够在斩波前后将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=)