mksh

桀骜
mksh

桀骜

在 Android(使用mkshMirBSD Korn Shell)上,有一种特殊的字符串替换语法(称为“值替换”): ${|commands} 替换结果不是收集命令的输出(如``和),而是从分隔符内分配的变量$()中获取。$REPLY它的特殊之处在于命令不要在子 shell 中运行 - 它们在同一个 shell 中运行,并且可以访问当前 shell 会话拥有的所有内容。 Debian 有一个mksh适用于 MirBSD Korn Shell 的软件包,其行为与 Android 完全相同。 哪些 shell 支持类似的语法,其中: 命令在与父级相同的 s...

Admin

如何在会话之间启用 ksh 命令历史记录
mksh

如何在会话之间启用 ksh 命令历史记录

如果我启动ksh或mksh,我的向上箭头不会执行任何操作: $ ksh $ ^[[A^[[A^[[A^[[A^[[A bash但如果我开始bash并按向上箭头,它就会起作用。 $ bash developer@1604:~$ ssh [email protected] -p 2223 如果我启动 ksh 或 mksh,则没有历史记录。我什至设置了 $HISTFILE 变量,但如果我启动一个新的 shell,仍然没有历史记录。 我能做什么呢? Korn shell 确实无法记住会话之间的历史记录,而 bash shell 可以吗? 如...

Admin

将函数移至新脚本
mksh

将函数移至新脚本

有没有办法既可以$val进入a ()但又不被看到b ()? set -u -e -o pipefail a () { local +x val="myval" echo "in a: VAL= $val" b } b () { echo "in b: VAL= $val" } a 生产: in a: VAL= myval in b: VAL= myval # This should not happen. 我希望使用local/ typesetoptions 而不是使用子 shell 来保护变量不被其他函数看到。 我已...

Admin

移动到父目录时 mksh 完成
mksh

移动到父目录时 mksh 完成

我刚刚安装了 mksh,不知道如何解决我遇到的一个小问题。当尝试将目录更改为父目录时,按“tab”键 mksh 无法完成。让我想象一下: $ cd .."tab" 不会结束于 $ cd ../ 为了获得此功能,需要在 mkshrc 中添加什么? 提前致谢! ...

Admin

是否可以使用 vi 编辑模式获取 mksh 中多行命令的工作历史记录?
mksh

是否可以使用 vi 编辑模式获取 mksh 中多行命令的工作历史记录?

在我的 Debian 系统上,我一直使用它pdksh作为我的交互式 shell。最初,命令行历史行为与我在 AIX 和 Solaris 等平台上成长过程中的行为类似。 最近,由于pdkshDebian 上现在由 实现mksh,命令行历史记录不再像我的手指期望的那样工作。我试图弄清楚我是否可以配置mksh做我想做的事情,或者我是否必须找到另一个习惯用法(或另一个shell)。 ksh我在 vi 编辑模式下使用(set -o vi和FCEDIT=vi)。很多时候,我会在命令提示符处立即编写简短的多行命令,即 daystrom:/home/pronovic&...

Admin

如何使 mksh for 循环从 1 到 N
mksh

如何使 mksh for 循环从 1 到 N

所以我尝试这样做 for x in {1..7000} do echo $x done 输出是{1..7000} 我还了解到 C 风格的 for 循环在 mksh 中不起作用 我做了一些谷歌搜索,但主要是关于 ksh 的信息,而不是 mksh 那么在 mksh 中迭代范围的正确方法是什么? 笔记:我对创建迭代和类似 C 的行为的正确方法更感兴趣,而不是打印字符串。 ...

Admin

zsh 和 mksh 与 bash 不兼容的地方在哪里?
mksh

zsh 和 mksh 与 bash 不兼容的地方在哪里?

其他 POSIX 兼容 shell 在多大程度上可以作为 bash 的合理替代品?它们不需要是真正的“直接”替代品,但足够接近以进行合作最多脚本并通过一些修改支持其余部分。 我想要显式的 bash 脚本 - initscripts、DHCP 客户端脚本等 - 只需进行最少的修改即可工作 我希望我自己收集的更专业的 shell 脚本不需要太多修改 我想要具有字符串操作和内置正则表达式模式匹配等功能 据我所知,唯一有力的竞争者是 zsh 和 mksh。因此,对于那些擅长其中一个或两个的人: bash 有哪些功能是 zsh 和 mksh 分别没有的? ...

Admin

获取ksh中最后执行的命令行
mksh

获取ksh中最后执行的命令行

有没有办法获取最后执行的命令以及 ksh 脚本中的参数?我正在将 mksh 与 cygwin 一起使用。 我尝试过fc -nl -1,但脚本抛出“”fc:历史函数不可用”错误。 BASH_COMMAND我在 ksh 中没有看到该变量的等效项。 以下是脚本的摘录: function trapper () { printf "culprit: " fc -nl -1 } trap trapper ERR grep -ic textdoesntexist test3 一旦 grep 返回 1 , trapper 就会执行,但我收到一个 fc...

Admin

ksh 中的变量名称补全
mksh

ksh 中的变量名称补全

当我在 bash 中时,我可以执行包含环境变量名称的选项卡,但使用 ksh 时我无法这样做。我怎样才能用 KSH 完成它?我正在将 mksh 与 cygwin 一起使用。 ...

Admin

重定向中顺序什么时候很重要?
mksh

重定向中顺序什么时候很重要?

printf "..." 1>&2我编写了一个脚本,该脚本在函数内部有一些注销。运行该脚本(build.sh),我注意到如果我想将 stderr 重定向到 stdout,并将 stdout 重定向到文件 [0],成功取决于顺序: ./build.sh 2> /tmp/log.txt有效(显然) ./build.sh 1>/tmp/log.txt 2>&1作品 ./build.sh 2>&1 1>/tmp/log.txt不重定向到该文件 与echo:...

Admin