我有以下形式的条目:cat:rat
我想将它们分配给 bash 中的单独变量。我目前可以通过以下方式做到这一点:
A=$(echo $PAIR | tr ':' '\n' | head -n1)
B=$(echo $PAIR | tr ':' '\n' | tail -n1)
之后$A
和$B
分别是猫和老鼠。回声,两个管道,感觉有点矫枉过正我错过了一种更简单的方法吗?
使用read
命令
entry=cat:rat
IFS=: read A B <<< "$entry"
echo $A # => cat
echo $B # => rat
是的,使用bash 参数替换
PAIR='cat:rat'
A=${PAIR/:*/}
B=${PAIR/*:/}
echo $A
cat
echo $B
rat
或者,如果您愿意使用数组代替单个变量:
IFS=: read -r -a ARR <<<"${PAIR}"
echo ${ARR[0]}
cat
echo ${ARR[1]}
rat
编辑:参考 glenn jackman 的答案以获得最优雅read
的解决方案
animal="cat:rat"
A=echo ${animal} | cut -d ":" -f1
B=echo ${animal} | cut -d ":" -f2
可能不是最好的解决方案。只是给你一个可能的解决方案