AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 122890
In Process
Sharjeel
Sharjeel
Asked: 2010-03-17 03:28:27 +0800 CST2010-03-17 03:28:27 +0800 CST 2010-03-17 03:28:27 +0800 CST

无法使用 cd dirname cd 到父目录

  • 772

我制作了一个 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 作为后缀

bash shell weblogic sed
  • 1 1 个回答
  • 1279 Views

1 个回答

  • Voted
  1. anpcre
    2010-03-17T03:53:31+08:002010-03-17T03:53:31+08:00

    为了解决您的问题,我编写了一个非常基本的脚本:

    #!/bin/bash
    cd /usr/local/share/pixmaps
    pwd 
    sleep 5
    path=(dirname '/usr/local/shar/pixmaps')
    echo $path
    sleep 5
    

    pwd 的输出很好

    path 的输出是 dirname

    因此,当您尝试时,cd $(dirname '/domain_directory_path/app_name')它会尝试转到 cd dirname ... 显然不存在

    正如我从一个类似情况的博客中发现的那样:

    $ cd $(dirname $(find / -name unknownfile.txt  2>/dev/null | head -n 1))
    $ pwd
    /home/peter/status/2007/november
    

    因此,我认为cd $($(dirname '/domain_directory_path/app_name'))应该可以解决您的问题

    我尝试了以下脚本:

    #!/bin/bash
    cd /usr/local/share/pixmaps
    pwd 
    sleep 5
    path=($(dirname '/usr/local/share/pixmaps'))
    echo $path
    sleep 5
    cd /
    pwd
    sleep 5
    cd $path
    pwd
    

    输出是

    /usr/local/share/pixmaps
    /usr/local/share
    /
    /usr/local/share
    

    还有一件事

    做直接cd $($(dirname '/domain_directory_path/app_name'))没用

    因此,我想您首先需要提取某个变量的路径(我的脚本中的路径),然后 cd 到它,就像我在脚本中所做的那样

    问候

    安瑞特

    • 1

相关问题

  • Mac OS X:从 python 脚本中更改 $PATH

  • Bash 脚本:要求脚本以 root 身份运行(或使用 sudo)

  • crontab ifconfig 什么都不输出

  • 使用命令行工具按排序顺序计算重复项

  • 是否有 bash 等效于 ruby​​ 的“一些内容#{foo}”?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve