【发布时间】:2015-01-11 18:51:58
【问题描述】:
我编写了简单的 bash 行,应该替换一些 bash 脚本中的 LOGIN 字(将 LOGIN 替换为管理员字) 但它不起作用?
但是当我在我的 Linux/solaris 机器上输入 bash 命令然后单独运行这些命令时,它就可以工作了
那么为什么 bash 一个班轮不起作用(这里有什么区别?)
bash 一条线
/tmp ROOT > bash -c 'export LOGIN=admin ; /usr/local/bin/perl -i -pe 's/LOGIN/$ENV{LOGIN}/' /tmp/pass_login.bash'
ENV: Undefined variable.
在 bash shell 下单独运行命令(工作正常)
/tmp ROOT > bash
bash-3.2# export LOGIN=admin
bash-3.2# /usr/local/bin/perl -i -pe 's/LOGIN/$ENV{LOGIN}/' /tmp/pass_login.bash
.
我的脚本
more pass_login.bash
#!/bin/bash
MY_LOG_NAME=LOGIN
【问题讨论】:
-
问题中的错误 - ENV: Undefined variable
-
如果您将问题的标题替换为更不言自明的标题,那就太好了。
-
要将
'插入'中的bash文字,可以使用'\''。例如bash -c 'echo '\''$foo'\''; echo bar'有bash执行echo '$foo'; echo bar'
标签: linux bash perl shell solaris