“#”这个符号是什么意思?在ksh
What this symbol mean "#?" in ksh
“#”是什么意思?在ksh脚本中是什么意思?例如:
tt=03
while [ "$tt" !=' ' ];
do
tt=${tt#"?}
done
echo $tt
我在这里什么也得不到。所以呢 ”#?”在这个scipt中意味着什么?谢谢。
假设按照 downtheroad 的建议纠正语法(在 [ 和之前 ] 之后需要空白 )并且 省略 在 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=)
“#”是什么意思?在ksh脚本中是什么意思?例如:
tt=03
while [ "$tt" !=' ' ];
do
tt=${tt#"?}
done
echo $tt
我在这里什么也得不到。所以呢 ”#?”在这个scipt中意味着什么?谢谢。
假设按照 downtheroad 的建议纠正语法(在 [ 和之前 ] 之后需要空白 )并且 省略 在 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=)