“#”是什么?在ksh脚本中意味着什么?例如:
tt=03
while [ "$tt" !=' ' ];
do
tt=${tt#"?}
done
echo $tt
我什么都不会得到。所以呢 ”#?”这意味着什么?谢谢。
答案 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=)