使用命令 sed 's/read dummy/\#/'
which gettextize`` | sh -s – --copy --force可能会卡住的原因通常与
gettextize脚本的内容和它如何与
sed命令交互有关。这条命令试图通过
sed修改
gettextize脚本的行为,具体是将脚本中的
read dummy` 替换成注释,然后再执行修改后的脚本。
这里的几个潜在问题:
-
read dummy
的用途:gettextize
脚本中的read dummy
可能用于暂停脚本执行,等待用户输入。通过将其替换为注释(#
),这一行不再执行其原有的功能,但如果脚本中还有其他依赖于这一用户输入的部分,则可能导致脚本执行不正确或卡住。 -
管道到 shell 的执行:将修改后的脚本通过管道直接传递给 shell 执行时,可能不会按预期工作,特别是如果脚本需要交互式输入。通常,脚本的修改应该先保存到一个临时文件中,然后再执行这个临时文件,这样更容易控制和调试。
-
环境和权限问题:脚本执行过程中可能因为环境变量、路径或权限问题导致某些命令无法执行,或脚本在特定环境下行为不同。
解决建议:
- 修改并测试脚本:先将
gettextize
脚本复制到一个临时文件,手动修改这个文件,然后尝试执行临时文件。这样做可以更清楚地看到哪里出了问题。 - 详细输出调试:在执行脚本时添加
set -x
,以打印出执行的每一步,这有助于识别卡住的原因。
例如:
cp `which gettextize` ./gettextize_tmp
sed -i 's/read dummy/#/' ./gettextize_tmp
sh -x ./gettextize_tmp --copy --force
这种方法可以帮助你更准确地找到问题所在,并决定是否有更合适的方法来达到你的目的。