linux - 通过取变量值循环
问题描述
我正在尝试编写 bash 脚本,以及如何以管道分隔符格式获取变量中定义的值并打印它们。以下是我正在考虑的算法,但不确定 bash 命令。
#!/bin/bash
variable1="A|B|C"
if [ ! -z "$variable1" ]
count=#should return 3 as there are 3 values (A|B|C)
fi
while count>0; do
derivedvariable=#should get A, B, C in loop
print $derivedvariable
done
output should be:
A
B
C
解决方案
使用数组存储由字符分隔的输入元素:
s='A|B|C'
IFS='|' read -ra arr <<< "$s"
# length:
echo "${#arr[@]}"
# looping array:
for i in "${arr[@]}"; do
echo "$i"
done
输出:
3
A
B
C
推荐阅读
- vuejs3 - 表单助手的 Inertia.js 问题
- javascript - 我无法让 animate.js 启动
- python - Heroku Dash 应用程序无法部署但成功构建
- reactjs - React Hook useEffect 缺少依赖项:'user.id'。要么包含它,要么移除依赖数组 react-hooks/exhaustive-deps
- sql - SQL Server:行级安全性和 AAD 组 UPN 筛选器
- assembly - 试图在 lc3 程序集中的字符串末尾添加一个空字节
- reactjs - React with Inversify 使 useEffect 无限循环
- c++ - CUDA、Boost 和 Cmake “字符串子命令 REGEX,模式 MATCHALL 需要至少 5 个参数来命令。”
- c# - Unity2d 在 Z 旋转时从 Cannon 射球
- python-3.x - 从 NG.L CSV 文件中读取数据 - 日本烛台图