Bash脚本:如何从用户输入中替换文本

时间:2013-05-26 21:41:17

标签: linux bash

我需要创建一个交互式bash脚本,用户将输入一个单词,例如'xyz',它将替换文本文件中的单词。

例如,我有一个名为example.sh的脚本。当我运行它时,它应该问:

What is your name?: 
and the user will input 'xyz'.

脚本应该接受该输入并将名为userlist.txt的文本文件中的“username”替换为“xyz”

更清楚,我需要用户输入才能运行

sed -i -e s/username/userinput/g userlist.txt

2 个答案:

答案 0 :(得分:3)

您可以使用read builtin来阅读用户输入,然后您可以使用sed(1)进行文字替换:

if read -p "What is your name? " name; then
  sed -i~ -e "s/username/${name}/g" userlist.txt
else
  # Error
fi

答案 1 :(得分:1)

#!/bin/bash
echo "What is your name?"
read name
sed -i -e s/username/"$name"/g userlist.txt