声明 BASH。脚本中的字符串数组

Declaring BASH. Array of strings in a a script

我正在编写一个小脚本来测试我对比较运算符“=~”的正则表达式的理解。我以为我的语法没问题,但我不断得到:

3:语法错误:“(”意外

这是我的小脚本 link 这个语法错误:

#!/bin/bash

inputsArr=("ab" "67" "7b7" "g" "67777" "07x7g7" "77777" "7777" "")

for input in ${inputsArr[@]}; do
  if [[ "" =~ "$input" ]]; then
    echo "$?"
fi
done

我尝试在循环中将一些“字符串”与我的 arg1 或“$1”进行比较

代码在bash中有效,您只需运行它在右边shell,您可以执行以下操作:

  bash ./script.sh g

同时输入 ps -p $$(而不是 echo $SHELL)以查看 shell 您当前所在的位置:

示例:

# ps -p $$
    PID TTY          TIME CMD
  25583 pts/0    00:00:00 sh
# exit
# ps -p $$
    PID TTY          TIME CMD
  22538 pts/0    00:00:00 bash

我刚刚达到了我的目标!

#!/bin/bash

inputsArr=("ab" "67" "7b7" "g" "67777" "07x7g7" "77777" "7777" "")

for input in ${inputsArr[@]}; do [[ "$input" =~  ]]; echo "$?" ; done 

我要感谢每一位在这个基本的 BASH 脚本问题上给我提示的人。没有你们,我肯定不会以我自己的方式实现我的目标,很高兴看到这种合作付诸行动。