【发布时间】:2015-11-24 15:09:23
【问题描述】:
我正在尝试使用命令执行脚本:
sed -i "USER/c\export USER=${signumid}" .bashrc
sed -i "DEVENVHOME=$/c\export DEVENVHOME=${DEVENVHOME:-/home/${signumid}/CPM_WORKAREA/devenv.x}" .bashrc
我想将.bashrc 中的字符串“USER”替换为export USER=${signumid},其中$signumid 变量是通过Cygwin 提示符提供的。同样,我想在.bashrc 文件中用export DEVENVHOME=${DEVENVHOME:-/home/${signumid}/CPM_WORKAREA/devenv.x} 替换字符串DEVENVHOME=$ 的行,其中$signumid 变量是通过Cygwin 提示符提供的。
但我在 Cygwin 终端上遇到以下错误。:
sed: -e expression #1, char 1: unknown command: `U'
sed: -e expression #1, char 3: extra characters after command
【问题讨论】:
-
是的,这些是语法错误。 根本不清楚您希望这个无效代码应该完成什么,因此我们只能重述错误消息已经说明的内容,无法为您提供更多帮助。您可以通过解释您希望程序做什么来改进您的问题。
-
替代命令默认为
s/replace-this/with-that/。sed程序告诉你,它的曲目中没有命令U;您应该改用sed -i 's/USER/export USER='"${signumid}"/ .bashrc之类的东西。目前尚不清楚c和\的用途。同样在第二个命令中,除了你可能不应该使用/作为字符,因为替换字符串包含它;请改用%或@或其他东西(control-A?)。 -
我尝试执行 sed -i 's/USER/export USER='"${signumid}"/ .bashrc ,但它给出错误 sed: -e expression #1, char 35: unknown option到“s”,现在。
-
听起来像
signumid包含一个斜线。我的回答最后已经涵盖了这一点。