我正在尝试创建一个带有两个参数的脚本:一个单词和一个字符,然后返回该字符在单词中出现的次数。
这是我的代码:
#!/bin/bash
((counter=0))
for i in $1
do
if i == $2
then
((counter=counter+1))
fi
echo $counter
done
我的脚本每次都返回 1。我只精通python,所以我的bash语法很差。提前致谢。
您应该尝试以下简单的 bash 代码
#!/bin/bash
for ((i=0; i<${#1}; i++)); do
[[ $2 == ${1:$i:1} ]] && ((count++))
done
echo "There's $count occurrences of $2 in $1"
鉴于您使用 Bash 语法,
grep -c "$2" <<<"$1"
对于 POSIX shell,您需要echo
或(最好)printf
将字符串和管道连接到grep
.
当您遍历它时,shell 不会将令牌分解为单个字符(并且,有些人认为,Python 实际上也不应该:-) -for i in foo
只是设置i
为foo
.