首页 > 解决方案 > 使用 shell 脚本通过用户输入替换字符串中的文本

问题描述

我正在尝试使用 shell 脚本通过用户输入替换字符串中的几个单词。我已经让脚本的一部分工作,但无法完成完整的脚本。基本上,我正在检查 conf 文件中是否存在一行。如果是的话,很好。如果没有,我将向用户显示一个文本,并从用户那里获得两个输入来替换文本中的它们。最后在 conf 文件的末尾添加整个文本(用文本替换两个用户输入)。请帮我完成脚本。

#!/bin/bash
#checking if the line exists on the setup.conf file
grep -q -F 'javaagent:/var/appdynamics/AppServerAgent/javaagent.jar' /path/setup.conf
if [ $? -ne 1 ]; then
  echo "Parameters are already set as export on setup.conf"
else 
  echo "export CATALINA_varS="$CATALINA_varS -javaagent:/var/appdynamics/AppServerAgent/javaagent.jar -Dappdynamics.agent.applicationName=YOUR_APPNAME -Dappdynamics.agent.tierName=YOUR_TIERNAME -Dappdynamics.agent.nodeName=`hostname`""

read -p "Enter the value for -Dappdynamics.agent.applicationName : " n1
read -p "Enter the value for -Dappdynamics.agent.tierName= : " n2

appname=$n1
tiername=$n2

#trying to store the whole text in a string
string=export CATALINA_varS="$CATALINA_varS -javaagent:/var/appdynamics/AppServerAgent/javaagent.jar -Dappdynamics.agent.applicationName=YOUR_APPNAME -Dappdynamics.agent.tierName=YOUR_TIERNAME -Dappdynamics.agent.nodeName=`hostname`"

# Have to replace YOUR_APPNAME AND YOUR_TIERNAME with variables appname and tiername.

echo 'export CATALINA_varS="$CATALINA_varS -javaagent:/var/appdynamics/AppServerAgent/javaagent.jar -Dappdynamics.agent.applicationName=$appname -Dappdynamics.agent.tierName=$tiername -Dappdynamics.agent.nodeName=`hostname`"' >> /path/setup.conf

谢谢你。库马尔。

标签: stringbashshellreplacescripting

解决方案


推荐阅读