声明 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
- $SHELL 是告诉你当前用户拥有什么,但你可以随时更改,这就是为什么另一个命令更有用。
- Borne shell (sh) 不能很好地处理数组。你必须使用评估。
- 将默认 shell 更改为 bash。参考:https://www.tecmint.com/change-a-users-default-shell-in-linux/
我刚刚达到了我的目标!
#!/bin/bash
inputsArr=("ab" "67" "7b7" "g" "67777" "07x7g7" "77777" "7777" "")
for input in ${inputsArr[@]}; do [[ "$input" =~ ]]; echo "$?" ; done
我要感谢每一位在这个基本的 BASH 脚本问题上给我提示的人。没有你们,我肯定不会以我自己的方式实现我的目标,很高兴看到这种合作付诸行动。
我正在编写一个小脚本来测试我对比较运算符“=~”的正则表达式的理解。我以为我的语法没问题,但我不断得到:
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
- $SHELL 是告诉你当前用户拥有什么,但你可以随时更改,这就是为什么另一个命令更有用。
- Borne shell (sh) 不能很好地处理数组。你必须使用评估。
- 将默认 shell 更改为 bash。参考:https://www.tecmint.com/change-a-users-default-shell-in-linux/
我刚刚达到了我的目标!
#!/bin/bash
inputsArr=("ab" "67" "7b7" "g" "67777" "07x7g7" "77777" "7777" "")
for input in ${inputsArr[@]}; do [[ "$input" =~ ]]; echo "$?" ; done
我要感谢每一位在这个基本的 BASH 脚本问题上给我提示的人。没有你们,我肯定不会以我自己的方式实现我的目标,很高兴看到这种合作付诸行动。