在所有bash脚本中以“女性符号”的形式打印出一个额外的换页符。
主要问题是换页符不是可打印的字符。因此,大多数用于处理路径的bash脚本没有为表单提要和崩溃实现过滤机制。
我正在尝试使用Ant工具为Android构建一个APK,并且女性符号会破坏脚本。
我还可以看到所有PHP脚本中的女性符号都是从bash运行的。下面是一个简单的测试脚本:
if (isset($argv[1])) {
echo "\nString\n";
} else {
passthru('php -f ' . __FILE__ . ' arg1');
}
当我运行此行php -f script.php
(其中 script.php 包含上面的代码时)输出如下:
♀ String
所以再一次,这不是特定于程序的问题,而是系统范围的问题。我无法在另一台机器上重现它。
我一直在寻找可能导致这种情况的答案大约一周没有成功。
你知道这可能是什么原因吗?
答案 0 :(得分:5)
今天我遇到了类似问题的表格提要符号:
for /f "tokens=1,2 delims=!" %a in ('echo test') do (set RELAY=%a)
C:\>echo %RELAY%
♀test
问题是cmd的AutoRun中的CLS命令。 的startup.bat:
@echo off
doskey ps=C:\tools\tasklist_by_name.bat $1
doskey kill=C:\tools\taskkill_by_pid.bat $1
doskey list=doskey /macros$bsort
cls
它与此
一起运行HKEY_CURRENT_USER\Software\Microsoft\Command Processor
AutoRun "C:\tools\startup.bat"
当我删除CLS命令时,没关系。 您可以在系统上查看它,也可以设置AutoRun。
答案 1 :(得分:0)
这是检测问题的最小批处理脚本:
@echo off
for /f "delims=" %%a in ('echo a') do if not "a"=="%%a" (
echo error : found problem in AutoRun cmd (you can try to remove cls and virtual terminal sequences)
exit /B 1
)
rem etc.
exit /B 0