2013-01-08 101 views
0

我正在编写一个shell脚本,用于创建数据库并将值存储到database.file中的键中。Shell脚本和-e参数

我得到了一个测试,吸引了我的注意力,我想知道为什么会发生这种情况。

./shellscript put key -e 

预期的行为将创建一个文件:

key <-> -e 

出于某种原因,我的shell脚本,甚至不能赶上“-e”,甚至在打印时,$ 1,通过-e作为第一个参数。

+0

你在Linux上吗?如果将环境变量POSIXLY_CORRECT设置为1,参数是否显示?如果是这样,有一个解释... –

+0

嗨,是的,我在Linux上,我测试与POSIXLY_CORRECT设置为1,但没有任何改变。 – cp151

+1

'key <-> -e'是文件的内容,对不对?你的问题措辞的方式,它看起来像是文件的名称,这将是合法的,但很奇怪。 –

回答

0

让我猜。你在shell脚本中使用“echo”来打印命令行参数吗?如果是的话:更换每

echo foobar 

通过

printf '%s\n' foobar 

请问现在的问题消失? (根据你的“回声”版本,它将 -e和/或-n解释为选项,而不是作为参数。)