Break up inputs in Bash
本问题已经有最佳答案,请猛点这里访问。
我希望能够将输入拆分为多个字符。例如,我希望能够将"Hello World"分解为H、E、L、L、O、[空格]、W、O、R、L、D。我正在尝试在我的Raspberry Pi上制作一个莫尔斯代码转换器,如果我能只进行单独的字符翻译,而不必为整个单词编写代码翻译,这将节省我很多时间。这有可能吗?对不起,如果我听起来不知道我在说什么,因为我有点不知道。
你为什么用bash?可以使用python或ruby使其更简单。bash并不是为你所做的而设计的。
如果您必须使用bash,并且我会小心地相信bash在嵌入式系统上是可用的,那么下面是一种方法(参见如何在bash中的字符串中对每个字符执行for循环)?更多):
1 2 3 4 5 6 7 8 9 | #!/bin/bash my_string="hello world" for (( i=0; i<${#my_string}; i++ )); do echo"${my_string:$i:1}" done exit 0 |
一些用于处理字符串和数组的bash资源:
- http://tldp.org/ldp/abs/html/arrays.html
- http://tldp.org/ldp/abs/html/string manipulation.html stringmanip
要学习python和/或ruby:
- 网址:http://learnpythonthehardway.org/
- http://ruby.learncodethehardway.org网站/
X是你的弦Y是生成的字符数组
1 2 | i=0 while [ $i -lt ${#x} ]; do y[$i]=${x:$i:1}; i=$((i+1));done |
bash:将字符串拆分为字符数组