2013-04-10 80 views
0

我刚刚开始使用BASH脚本,并遇到问题。是否可以通过print命令从BASH脚本获取输出?

我想输出一个变量的值,而我可以通过echo命令来实现这一点。当我尝试使用print命令时,我看到一个错误。

这里是试图使用print命令时的问题:

[email protected]:~$ y=$HOME 
[email protected]:~$ print -- $y 
**Warning: unknown mime-type for "/home/ian" -- using "application/octet-stream" 
Error: no "print" mailcap rules found for type "application/octet-stream"** 

..这里是使用echo

[email protected]:~$ echo $HOME 
/home/ian 

不支持print命令的输出?或者我的环境有问题吗?

在需要的情况下,我使用的是Xubuntu 12.10

更新以下响应\反馈:

我怎么指望print办?

以echo命令的形式输出变量的值。

我为什么期待这种行为?

我一直提到的例子使用打印,因为我在上面的例子中有。我没有得到任何输出只是错误。所以我想知道为什么会出现这个错误。

我不得不使用Korn Shell的的例子是。我很欣赏我使用BASH shell,但在我的天真中,我认为它应该工作。

+0

你期望'print'办?试试'man print'来看看'print'实际上做了什么。正如小二郎的答案所表明的那样,很可能你想'printf'。请注意,'printf - $ y'将打印没有尾随换行符的值。 – 2013-04-10 19:26:42

+0

感谢压倒性的回应 - 让我更新我的问题。 – 2013-04-10 19:30:11

回答

4

print不是标准的shell命令。你在想printf吗?

它可能为您开始阅读shell scripting guide

(该print command you have on your system看上去也是用于打印文件时,不显示姓名的扩展。)

+0

如果安装了print,它可以是一个命令。在我的Ubuntu系统上,'/ usr/bin/print'由'mime-support'包提供。 – 2013-04-10 19:22:42

+0

@KeithThompson是的,这使得它成为外部命令,而不是shell命令。我会澄清我的答案。 – kojiro 2013-04-10 19:23:20

+0

取决于“shell命令”的含义。看起来OP正在调用'print'的mime-support版本,但这可能不是他想要的。 – 2013-04-10 19:24:40