如何使用bash拆分输入?

时间:2011-12-28 20:56:34

标签: linux bash

我必须在Linux中编写一个脚本,它接受用户的输入。

例如,这可能是一行输入:

name = Ruba

我需要从输入中取"Ruba",那么我如何分割输入并获取最后一部分?

4 个答案:

答案 0 :(得分:3)

您可以使用IFS in bash,这是“内部字段分隔符”,并告诉bash如何分隔单词。您可以将IFS设置为空格(或任何分隔符)来读取输入,并将数组作为输入返回。

#!/usr/bin/env bash

echo "Type in something: "

# read in input, using spaces as your delimiter.
# line will be an array
IFS=' ' read -ra line

# If your bash supports it, you can use negative indexing
# to get the last item
echo "last item is: ${line[-1]}"

试运行:

$ ./inscript.sh 
Type in something: 
name = ruba
last item is: ruba

答案 1 :(得分:2)

如果你想读名字:

#!/bin/bash
read -p "Name: " name
echo $name

上面的代码提示输入名称并输出。

如果您的输入是“name = Ruba”

#!/bin/bash
read name
name=$( echo $name | sed 's/.*=\ *//' )
echo $name

上面的代码读取“name = Ruba”之类的行,删除 = 之前的所有字符和 = 之后的空格。

答案 2 :(得分:1)

#!/bin/bash
read input
echo $input |cut -d'=' -f2 | read name

答案 3 :(得分:0)

#!/bin/bash
read input
awk -F"= " '{print $2}' <<<"$input"