当我在终端(bash)的运行它回波打印出-e内部脚本
echo -e ."\c"
打印出.
并且抑制换行符。
当我运行下面的脚本(所有的代码)
echo -e ."\c"
echo -e ."\c"
它打印出..
并抑制新行。
当我在shebang脚本中运行它时(!#/bin/sh
),它打印出-e . -e .
并禁止换行符。
为什么?我该如何预防呢?
编辑: 我想,以防止打印出-e
的,所以我的输出应为. .
当我在终端(bash)的运行它回波打印出-e内部脚本
echo -e ."\c"
打印出.
并且抑制换行符。
当我运行下面的脚本(所有的代码)
echo -e ."\c"
echo -e ."\c"
它打印出..
并抑制新行。
当我在shebang脚本中运行它时(!#/bin/sh
),它打印出-e . -e .
并禁止换行符。
为什么?我该如何预防呢?
编辑: 我想,以防止打印出-e
的,所以我的输出应为. .
脚本家当改变#!/bin/bash
代替#!/bin/sh
,看看它是否工作
或者使用/ bin/echo如果你想保持shebang不变 – shuvalov 2010-02-15 17:42:12
更改/ bin/sh更安全,因为如果在bash中使用了sh,那么这些东西将不起作用。 – ghostdog74 2010-02-16 00:50:05
鉴于我使用sh编写并测试了脚本,在使用bash时可能会发生什么事情? (它现在没有实际意义,因为所有东西在改成bash之后都可以工作) – 2010-02-16 04:54:07
你需要给,如果你的家当行调用SH呼应的绝对路径。或者只是改变shebang使用bash。
是你的家当行实际上'#!/ bin中/ echo'?在这种情况下,这可能是由于echo是内置的,shebanged文件实际执行的二进制文件不能解释-e。 – falstro 2010-02-15 17:27:40
不,它的'#!/ bin/sh',还有-e标签实际上可以工作,但它仍然会打印出来。 – 2010-02-15 17:28:12
只是在此澄清:您期望看到什么结果,以及您试图阻止哪部分? – 2010-02-15 17:28:19