在Bash中分解输入

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:将字符串拆分为字符数组