如何使用read-in-bash只将一个确定的字母分配给变量?
我想从终端读取数据,并准确存储1个字母。如何使用read-in-bash只将一个确定的字母分配给变量?,bash,Bash,我想从终端读取数据,并准确存储1个字母。 我的方法x=$(read-dx)无效且为空。read将输出变量作为参数。尝试以下方法: read x && echo ${x:0:1} 上面从命令行读取输入,然后获取第一个字符并进行回显。感谢anubhava、kvantour和Charls Duffy的回答和评论,特别是关于子shell的提示。至少read-rn 1x按我的要求工作。使用read-rn 1x是否-n1使-r在这里冗余?x=$(read-rn 1x)仍然是空的。@john
我的方法
x=$(read-dx)
无效且为空。read将输出变量作为参数。尝试以下方法:
read x && echo ${x:0:1}
上面从命令行读取输入,然后获取第一个字符并进行回显。感谢anubhava、kvantour和Charls Duffy的回答和评论,特别是关于子shell的提示。至少
read-rn 1x
按我的要求工作。使用read-rn 1x
是否-n1
使-r
在这里冗余?x=$(read-rn 1x)
仍然是空的。@johngofy避免x=$(…)
。只要执行read-rn 1 x
当您运行x=$(read-rx)
时,您将启动一个新的子shell,从stdin读取并在子进程内设置x
变量。。。然后,在父shell中,将子shell写入stdout的所有内容分配给父shell中的x
。。。除了您的子shell根本没有向stdout写入任何内容,所以您分配的总是空的!