0
我對shell腳本非常陌生,我的問題很簡單。 在下面的代碼中執行「:go_start」直到「:setpython」,並執行「setpython」,直到代碼末尾的調用函數結束。在shell中跳轉命令
if X == "somthing" goto setpython
:go_start
rem ------------------------------Debug--------------------------------------
IF "%debug%"=="1" (
ECHO SiL Debug on
SET DEBUG_SOFTCAR=1
) ELSE (
ECHO SiL Debug off
SET DEBUG_SOFTCAR=0
)
rem -----------------------------------------------------------------------------------
IF "%env%"=="S" (\t
\t IF "%plat%"=="abc" (
\t \t md dir
\t \t copy srt drt
\t \t copy art drt
\t \t copy srt drt
\t \t copy srt drt
\t)
\t IF "%plat%"=="efg" (
\t \t md dir
\t \t copy srt drt
\t \t copy art drt
\t \t copy srt drt
\t \t copy srt drt
\t)
)
rem -------------------------------SiL-----------------------------
IF NOT "%env%"=="S" goto setpython
set cwd=%cd%
set PAR_PATH=Path
cd %PAR_PATH%
set A2L_PATH=path2
for %%i in (*.par) do ccperl perl.pl -a2l=%A2L_PATH%\hn1.a2l -par=%%~ni.par -svl=%%~ni.svl
cd %cwd%
rem -----------------------------------------------------------------------------------
:setpython
SET SC_DRIVE_LETTER=%CD:~0,2%
SET PATH_SCR_SC=path3
SET PYTHONPATH=python_path
rem ------------------------------PYTHON PARSER----------------------------------------
IF "%env%"=="H" SET testenv=_H
IF "%env%"=="S" SET testenv=
IF %LOAD_XML_FILE%==1 (
\t DO something
)
IF %GenAuto%==1 (copy srt drt)
set pyt=python path
for /f %%i in ('call %pyt%') do set gen_output=%%i
SET SKRIPT_PATH=op path
echo Generated files are here: %SKRIPT_PATH%
IF %GenAuto%==1 (
\t Do something
)
rem -----------------------------------------------------------------------------------
CALL Final.bat
和代碼的中期 「如果不是 」%ENV%「 ==」 S 「轉到setpython」,執行setpython之後,它回來,並執行代碼的其餘部分? 我在理解方面存在問題,直到函數(不知道在shell腳本中調用了什麼)執行。
OK對不起,只是eddited我的代碼。請立即檢查。現在我已經添加了goto命令,同時運行:setpython。它會運行,直到調用命令? – Ashok
不過,我只看到一個「goto」聲明。批處理文件可以使用「goto」執行循環(它們沒有while/do機制)。 –
我實際上不知道shell腳本的語法,我想知道「gostart」或「set python」中的所有內容是僅僅是那些或整個事物之後的第一組語句 – Ashok