【发布时间】:2019-11-04 04:43:34
【问题描述】:
我在 korn shell 脚本中阅读了以下说明:
typeset -i2 var=2#0
我设法知道使用typeset 可以指定变量的类型,并且参数-i2 描述了该变量是一个整数,以基数2(二进制)解释。
但是,我仍然无法理解分配给变量 (2#0) 的值是什么意思。
谷歌搜索我发现像variable#pattern这样的指令意味着模式的出现将从变量的前面被删除,但情况似乎并非如此......
编辑:似乎-in 语法特定于 korn shell (ksh)
【问题讨论】:
-
在 ksh
sh (AT&T Research) 93u+ 2012-08-01这个echo "$var"只显示2#0所以也许这只是这个变量的值,没有任何特殊意义? -
@ArkadiuszDrabczyk:不,将
var初始化为二进制0。可以将 15 以二进制方式初始化为2#1111 -
这不是一个真正的bash 问题:
bash: typeset: -2: invalid option,尽管 bash 确实在算术上下文中合并了“base#value”语法(typeset/declare/local -i引入了:declare -i x=16#deadbeef; echo $x