Bash排版(声明)为没有变量的整数

时间:2014-03-04 17:06:33

标签: bash variables

是否可以在bash中typeset -i(与declare -isee a manpagea reference同义)而不分配变量?

考虑以下示例:

typeset -i a=42;
foo $a;

是否可以在不使用辅助变量的情况下实现相同的功能? 假设foo不易编辑(例如,二进制文件)。

1 个答案:

答案 0 :(得分:2)

类型的声明放在函数体内。您可以使用declare或(更明确)local来实现此目的:

foo() {
  local -i arg=$1
  ....
}

如果没有修改函数的主体(或者在将参数作为无类型字符串传递之前添加执行类型检查的包装器),则不可能有其他解决方案,因为函数参数(和外部命令)作为字符串传递,无论事先可能做出的任何类型声明