空格文字作为bash中的函数名
这个问题与我以前的一个问题松散相关。 TL;来自muru的答案的 DR是函数名中的字符必须是可移植字符集才能对函数名有效。 问题是列表上有空格( 或
字符),这就是为什么我不知道为什么我不能这样做的原因:
$ $' '(){ echo "Hullo";} bash: `' '': not a valid identifier $ hello$' 'world(){ echo "hi";} bash: `hello' 'world': not a valid identifier
使用其他shell:
$ mksh -c '\ (){ echo "Hello";} ' mksh: : invalid function name $ ksh -c '\ (){ echo "Hello";} ' ksh: : invalid function name $ dash -c '\ (){ echo "Hello";} ' dash: 1: Syntax error: Bad function name
让我强调相关部分:
单词由便携式字符集中的下划线,数字和字母组成
不允许使用便携式字符集中的其他字符。 便携式字符集中的字符是必要但不充分的条件 。