ksh - 这个符号是什么意思“#?” 在 ksh
问题描述
“#”是什么意思?在 ksh 脚本中是什么意思?例如:
tt=03
while [ "$tt" !=' ' ];
do
tt=${tt#"?}
done
echo $tt
我在这里什么也得不到。所以呢 ”#?” 在这个scipt中是什么意思?谢谢你。
解决方案
假设按照目前的建议在 while 正确的语法(在 [ 和之前 ] 之后需要空白)并且还省略了 " in tt=${tt#"?}
(省略的版本是你引用的)。
此外,while 条件中的测试需要针对空字符串''
,否则循环不会终止。
tt=${tt#?}
砍掉字符串中的第一个字符。
请参阅此测试程序(我添加了 2 个回声和括号,以便能够在斩波前后看到循环中 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=)
推荐阅读
- apache - Apache基于referer重定向图像
- javascript - DropDownList Generic with ViewComponent in .net core 2
- swift - StatusItem 的操作在 Swift 中不起作用
- docker - Docker 映像完全无用,无法启动
- ios - 删除从其子项引用的 UIView?
- javascript - 如何将字符串分解为对象数组
- python - 无法在 Eclipse 中配置 PyDev 解释器
- java - 使用 .equals 方法进行正则表达式字符串匹配
- c# - 使用 RestSharp 时响应不正确,但它适用于 httpclient
- android-studio - 可模拟的AndroidJar 失败