如何更改command_not_found_handle中的当前工作目录

2024-03-30

我正在尝试在 Bash 中编写一个未找到的句柄,它执行以下操作:

  1. 如果 $1 存在并且它是一个目录,cd进去。
  2. 如果 $1 存在于用户定义的目录中$DEV_DIR, `cd 进入其中。
  3. 如果前面的条件不适用,则失败。

现在我有这样的事情:

export DEV_DIR=/Users/federico/programacion/

function command_not_found_handle () {
    if [ -d $1 ]; then          # the dir exists in '.'
        cd $1
    else
        to=$DEV_DIR$1
        if [ -d $to ]; then
            cd $to
            echo `pwd`
        else
            echo "${1}: command not found"
        fi
    fi
}

尽管它似乎有效(echo pwd命令打印预期的目录),实际 shell 中的目录不会改变。

我的印象是,因为这是我内部的一个功能.bashrcshell 不会分叉,我可以这样做cd但显然这不起作用。任何有关如何解决此问题的提示将不胜感激。


I think发生了什么事是外壳fork()在设置任何重定向之后但在查找命令之前,所以command_not_found_handle不能影响交互式 shell 进程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改command_not_found_handle中的当前工作目录 的相关文章

  • 如何制作一个 bash 脚本来同时创建 40 个程序实例?

    我是新来的bash and Linux 我编写了一个程序 我想创建多个同时实例 现在 我通过打开 10 个新终端 然后运行该程序 10 次 我运行的命令是php home calculatedata php 使用 bash 脚本执行此操作的
  • 通过powershell运行ADB命令

    所以我尝试通过 powershell 脚本运行一些 ADB 命令 这是我正在尝试做的一个简单示例 adb shell echo in adb shell su root echo you are now root ls cd data da
  • if [ -z "${FILE_LIST}" ] 中的 -z 是什么

    遇到了这个 什么是 z在 shell 脚本中if z FILE LIST 是相同的test And man test gives z STRING the length of STRING is zero 注意 在某些平台上 是一个符号链接
  • jq:将对象数组转换为对象

    我收到了来自curl的回复 格式如下 list value 1 id 12 value 15 id 13 value 4 id 14 给定 id 之间的映射 如下所示 12 newId1 13 newId2 14 newId3 我想做这个
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • 动态参数值取决于另一个动态参数值

    启动前提 非常严格的环境 Windows 7 SP1 Powershell 3 0 使用外部库的可能性有限或不可能 我正在尝试重写之前创建的 bash 工具 这次使用 PowerShell 在 bash 中 我实现了自动完成功能 以使该工具
  • 如何在 Windows 下向 .sh 脚本传递参数?

    我正在尝试在 Windows 下执行 sh 脚本 我安装了 Git 它允许我执行 sh 文件 但是 如果不使用 sh 作为执行前缀 我似乎无法传递任何参数 我的 sh 文件 echo Test 1 如果我用以下命令执行它 gt sh tes
  • 如何查看正在运行的 tcsh 版本?

    如何查看我的 UNIX 终端中运行的 tcsh 的当前版本 看着那 这version多变的 echo version tcsh 6 14 00 Astron 2005 03 25 i386 intel linux options wide
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • 为什么我可以直接从 bash 执行 JAR?

    我是一个长期从事 Java 工作的人 并且知道运行带有主类的 JAR 的方法MANIFEST MFJar 中的文件很简单 java jar theJar jar 我用它来启动 Fabric3 服务器 包含在bin server jar在其标
  • 协助 awk/bash 捕获内存差异

    我正在尝试从以下文件中提取以下输出 xr lab show clock Thu Sep 19 14 38 02 812 WIB 14 38 02 893 WIB Thu Sep 19 2019 xr lab xr lab xr lab sh
  • 在bash脚本中分割字符串[重复]

    这个问题在这里已经有答案了 我想分割一个字符串并需要其中的一些参数 USER dn uid dfl3030 cn users cn accounts dc tenant dc ycs dc io cn Reb Lena Schmidt kr
  • 如何从我自己的脚本向 Fish shell 提供制表符补全?

    我运行的是 Ubuntu 13 10 和 Fish 2 1 0 我想自己编写一个 Python 脚本来从命令行执行一些任务 该脚本将需要命令行参数 我怎样才能编写我的脚本 以便 Fish 可以请求并获取给定参数的可能值 潜在值列表是动态的
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • 为什么 $((true == false)) 在 bash 中计算结果为 1?

    为什么 bash 有以下行为 echo true false 1 我本以为这会打印0 但它打印1 以下事实使情况变得更加复杂 gt echo true 0 gt echo false 0 gt echo true true 1 gt ech
  • 将二进制输出从文件输出重定向到 stdout

    我有一个专有的二进制文件 它顽固地接受两个文件作为参数 第一个作为输入 第二个作为输出 我想 构建第一个参数 不创建临时文件 使二进制写入标准输出而不是输出文件 第二个参数 我解决了第一个问题 lt 但不确定第二个参数 我编写了以下脚本 看
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • 通过 sed 使用 unix 变量将数据附加到每行末尾[重复]

    这个问题在这里已经有答案了 我有一个文件 我想使用 SED 将值附加到每行末尾的 unix 变量中 我已经通过 AWK 实现了这一点 但我想在 SED 中实现 像这样的东西 我已经尝试过以下命令 但它不起作用 sed i s BATCH R
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b

随机推荐

  • Powershell 命令修剪以“\”结尾的路径

    如果路径结尾为 我需要修剪路径 C Ravi 我需要更改为 C Ravi 我有一个情况 路径不会以 那么它必须跳过 我尝试过 EndsWith 但是当我有时它会失败 代替 可以在 PowerShell 中完成此操作而不诉诸条件吗 考虑使用T
  • 检索 Win64 异常表中的所有条目

    从一些更清晰的理解Win64异常堆栈行走不显示条目 https stackoverflow com questions 14187450 win64 exception stack walking not displaying entrie
  • 需要字母和数字 - regEx

    我试图弄清楚如何只需要字母和数字而不需要任何其他字符 所以从字面上看 a z and d or 0 9 取决于对数字执行此操作的更好方法 因此 如果我有一个需要验证的字符串 toValidate Q23AS9D0APQQ2 It may s
  • 为什么泛型类型不能有显式布局?

    如果尝试使用以下方法创建一个通用结构 StructLayout http msdn microsoft com en us library system runtime interopservices structlayoutattribu
  • 类型参数不可分配给字符串

    我有一个格式化的 json 数据 我想在 d3 中使用它来绘制层次结构 它正在处理旧数据 但在 json 数据中添加更多维度后 出现以下错误 类型参数 name string 孩子们 组 数量 名称 字符串 组 数量 不可分配给 只读字符串
  • 安卓LVL合理吗?

    我即将发布我的第一个 Android 应用程序 我正在考虑为我的应用程序使用 Android 的许可服务 LVL 但现在我不确定不使用任何许可服务是否会更好 a LVL 无论如何都可以被破解 b LVL 导致我的应用程序出现一些延迟 你们有
  • 缩放后确定 HTML5 画布上的鼠标位置

    我正在开发一些 HTML5 中涉及画布使用的软件 我需要在一张画布上进行缩放并允许用户通过单击鼠标在画布上进行涂鸦 到目前为止 在我找到的一些示例的帮助下 我已经可以使用缩放功能了 问题是缩放后 我的绘图工具上的鼠标位置不正常 在进行任何缩
  • 绘制线而不是点 R

    这可能是一个简单的问题 但我无法找到解决方案 我有以下图 我正在使用图 CI 因为我无法用图 填充点 leg lt c 1 2 3 4 5 6 7 8 Col rar1 lt c rgb 1 0 0 0 7 rgb 0 0 1 0 7 rg
  • PyQt self.close() 在 __init__() 中

    我在 Python 2 7 下使用 PyQt4 时遇到了一些小问题 我正在编写一个小项目 其中有一些 QDialogs 相互打开 因此 我打开一个对话框 然后立即打开另一个对话框来检查某些内容 当出现错误检查时 我希望关闭整个对话框 它看起
  • 您可以设置整数的最大限制(C++)吗?

    如果我不想让一个整数超过 100 是否有任何简单的方法可以确保该整数永远不会超过 100 无论用户添加了多少 例如 50 40 90 50 50 100 50 60 100 50 90 100 尝试这个 std min 50 40 100
  • 从 JSON 创建多表头表

    我是熊猫新手 我正在尝试创建下表 C Perl line func line func version covered total covered total 我创建的 JSON 结构如下 version1 perl line covere
  • 使用 Google AppEngine MapReduce 处理所有记录后,如何从计数器获取值?

    使用 Google AppEngine MapReduce 处理所有记录后 如何从计数器获取值 或者我在这里错过了计数器的用例 示例代码来自http code google com p appengine mapreduce wiki Us
  • 如何从 browserify/babelify 导出全局变量以便在没有 browserify 的项目中使用?

    设想 我有两个设置完全不同的项目 常规网站 遗留代码和简单的 gulp 设置 小宠物项目 在 ES6 类的帮助下编写的 JS 滑块插件 用 babel 转译 JS 吞咽任务 gulp task js function return gulp
  • Apache Hive regEx serde:数据类型

    对于处理日志 我想使用 Apache Hive regEx serde 但我只找到使用 String 作为表列的数据类型的示例 现在我的问题是 是否支持基于日期的类型 整数和数组 还是只是字符串 此示例 和其他示例 仅使用字符串 CREAT
  • Google 关于输入/输出参数作为指针的样式指南

    The 谷歌 C 风格指南 http google styleguide googlecode com svn trunk cppguide html做出了明确的区分 严格遵循cplint py http google styleguide
  • 打开/关闭sql连接-冗余代码

    我想知道避免以下情况的最基本方法是什么 con ConnectionString connection String con Open cmd Connection con database interaction here cmd Clo
  • 是否已经可以在react-native中使用顶级await了?

    是否已经可以在react native中使用顶级await了 我看到它已被添加到 TypeScript 3 8 中 我没有使用 TS 我只是想看看它是否有帮助 但没有 然而 在react native中 文件转换是由babel处理的 我不认
  • Jupyter - 在多个单元中拆分类

    我想知道是否有可能将 jupyter 类分成不同的单元格 可以说 first cell class foo object def init self var self var var second cell def print var se
  • 如何从 Java 最小化 JFrame 窗口?

    在我的 Java 应用程序中 我有一个 JFrame 窗口 如何从我的 Java 程序中最小化它 最小化与frame setState Frame ICONIFIED 恢复与frame setState Frame NORMAL
  • 如何更改command_not_found_handle中的当前工作目录

    我正在尝试在 Bash 中编写一个未找到的句柄 它执行以下操作 如果 1 存在并且它是一个目录 cd进去 如果 1 存在于用户定义的目录中 DEV DIR cd 进入其中 如果前面的条件不适用 则失败 现在我有这样的事情 export DE