string - 使用 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
谢谢你。库马尔。
解决方案
推荐阅读
- ruby - 如何将两个活动记录选择查询结果组合成一个活动记录关系
- java - Java - 为什么多线程的 .join() 不会影响执行顺序
- python - python - 纬度/经度指向platecarree投影图像
- sql - SQL查询性能慢'LIKE CNTR%04052021%
- macos - 目录中没有这样的文件,但该文件存在于 Mac
- android - 适用于 Android 的 CameraX 中的色盲过滤器
- laravel - 使用命令创建迁移
- python - 如何将 char ** 类型的参数从 Python 传递到 C API
- angular - 如何从路由器事件订阅中返回路由保护的值
- python - 将相机坐标中的向量转换为头部坐标