0
我正在编写一个shell脚本,用于创建数据库并将值存储到database.file中的键中。Shell脚本和-e参数
我得到了一个测试,吸引了我的注意力,我想知道为什么会发生这种情况。
./shellscript put key -e
预期的行为将创建一个文件:
key <-> -e
出于某种原因,我的shell脚本,甚至不能赶上“-e”,甚至在打印时,$ 1,通过-e作为第一个参数。
我正在编写一个shell脚本,用于创建数据库并将值存储到database.file中的键中。Shell脚本和-e参数
我得到了一个测试,吸引了我的注意力,我想知道为什么会发生这种情况。
./shellscript put key -e
预期的行为将创建一个文件:
key <-> -e
出于某种原因,我的shell脚本,甚至不能赶上“-e”,甚至在打印时,$ 1,通过-e作为第一个参数。
让我猜。你在shell脚本中使用“echo”来打印命令行参数吗?如果是的话:更换每
echo foobar
通过
printf '%s\n' foobar
请问现在的问题消失? (根据你的“回声”版本,它将 -e
和/或-n
解释为选项,而不是作为参数。)
你在Linux上吗?如果将环境变量POSIXLY_CORRECT设置为1,参数是否显示?如果是这样,有一个解释... –
嗨,是的,我在Linux上,我测试与POSIXLY_CORRECT设置为1,但没有任何改变。 – cp151
'key <-> -e'是文件的内容,对不对?你的问题措辞的方式,它看起来像是文件的名称,这将是合法的,但很奇怪。 –