从 korn shell 中,我不断收到找不到 print 命令的消息。当我从 shell 运行 print 时,它说同样的事情。我该如何解决这个问题? printf 工作正常,但由于某种原因 print 不能。
这是 redhat 5.5,ksh 是 3.2.25-release。
谢谢
答案1
我们可以提供更多信息吗? “print”是 ksh 的 shell 内置函数,它应该始终存在。以下是我自己的 redhat 系统的一些信息:
$ cat /etc/redhat\-release
Red Hat Enterprise Linux Workstation release 6.3 (Santiago)
$ /bin/ksh --version
version sh (AT&T Research) 93t+ 2010-06-21
$ whence -v print
print is a shell builtin
您还可以检查是否没有名为“print”的别名。我在 /usr/bin 或 /bin 等中没有任何名为“print”的可执行文件。您可以检查这是否也适合您。启动一个新的 shell 实例(输入“/bin/ksh”),然后说
PATH= whence -v print
答案2
没有这样的 ksh 版本。然而,这是 RHEL 5.5 上的 bash 版本,因此看起来您正在使用 bash。您在寻找 ksh 内置函数吗?使用echo
或printf
代替。或者运行 ksh(可能未安装,bash 是非嵌入式 Linux 安装上事实上的标准 shell)。
print
这是符合 POSIX 标准的翻译选项的指南printf
。
- 无选项或
-e
:printf '%b\n'
- 使用
-n
:\n
从格式中省略 (printf %b
或printf %s
) -p
:如果您需要协进程,则需要 ksh- 与
-r
或-R
:printf '%s\n'
-s
:明确重定向到所需的输出文件,用于>>
附加-u
:使用重定向,例如printf … >&3