我制作了一个 bash 命令,该命令生成一个用于重新启动服务器上所有 Weblogic (8,9,10) 实例的行。该脚本运行良好,但我需要一个建议以使其更好地使用dirname概念
/usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed 's/weblogic.policy//' | sed 's/security\///' | sort | sed 's/^/cd /' | sed 's/$/ ; cd .. ; \/recycle_script_directory_path\/recycle/ ;' | tr '\n' ' '
要重新启动 Weblogic 实例,需要从域目录中启动回收 (/recycle_script_directory_path/recycle/) 脚本,因为回收脚本会从域目录中的某些 .ini 文件中提取一些应用程序信息。
以下部分脚本生成一行 cd 到应用程序的父目录,即域目录
sed 's/$/ ; cd .. ; \/recycle_script_directory\/recycle/ ;' | tr '\n' ' '
我确信有更好的方法来 cd 到父目录,如 cd dirname但每次我运行以下 cd dirname 命令时,它都会引发“变量语法”错误。
cd $(dirname '/domain_directory_path/app_name')
如何将 cd 目录名合并到我的 bash 命令中?
请让我知道我是否可以做更多的改进
关于我的脚本的一些信息
1) 以下部分列出了运行的 weblogic 实例及其完整路径
/usr/ucb/ps auwwx | grep weblogic | tr ' ' '\n' | grep security.policy | grep domain | awk -F'=' '{print $2}' | sed 's/weblogic.policy//' | sed 's/security\///' | sort
2) grep domain 部分是必需的,因为所有域名都有 domain 作为后缀