我必须在Linux中编写一个脚本,它接受用户的输入。
例如,这可能是一行输入:
name = Ruba
我需要从输入中取"Ruba"
,那么我如何分割输入并获取最后一部分?
答案 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"