如何在一个读取命令下读取两个变量并分别回显它们?

如何在一个读取命令下读取两个变量并分别回显它们?

例如:

我希望用户输入 A=a

我的命令我猜是完全错误的。


read -p "Enter something:" frsstring=secstring
echo $frsstring
echo $secstring
````````````````````````````````````````````````````````````




答案1

bash可以使用数组变量并将 IFS(内部字段分隔符)特殊变量更改为=通常包含空格字符、制表符和换行符来分割单词。

IFS='=' read -a arr -p "Enter something: "
echo "${arr[0]}"
echo "${arr[1]}"

或者你可以使用外壳参数扩展从字符串中删除最长的后缀和前缀模式:

read -p "Enter something: " str
echo "${str%%=*}" # remove longest suffix pattern `=*`
echo "${str##*=}" # remove longest prefix pattern `*=`

答案2

我不知道如何用一个命令来完成它,但您可以读取整行,然后将其拆分为所需的变量:

#!/bin/bash

read -p "Enter something:" line
frsstring=`echo "$line" | cut -f1 -d'='`
secstring=`echo "$line" | cut -f2 -d'='`


echo $frsstring
echo $secstring

我希望它能有所帮助

相关内容