1
我有以下shell文件轉換成一個批處理文件:創建一個批處理文件出shell文件
\#!/bin/bash
\#
\# Generates and compiles a lexer or parser and runs it (this means
\# that the lexer/parser must contain a main method)
\#
\# Example usage: antlr4-run.sh Lexer.g4
DIR="$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)"
ANTLR_JAR=$DIR/lib/antlr-4.2.2-complete.jar
BASENAME="${1%.*}"
OUTDIR=out
echo "Generating..."
java -jar $ANTLR_JAR $1 -o $OUTDIR || exit 1
echo "Compiling..."
(cd $OUTDIR; javac -cp .:$ANTLR_JAR ${BASENAME}*.java) || exit 1
\#\# run (try parser first, then lexer, then plain)
echo "Input (end with ^D):"
if [[ -a $OUTDIR/${BASENAME}Parser.class ]] ; then
(cd $OUTDIR; java -cp .:$ANTLR_JAR ${BASENAME}Parser) || exit 1
elif [[ -a $OUTDIR/${BASENAME}Lexer.class ]] ; then
(cd $OUTDIR; java -cp .:$ANTLR_JAR ${BASENAME}Lexer) || exit 1
elif [[ -a $OUTDIR/${BASENAME}.class ]] ; then
(cd $OUTDIR; java -cp .:$ANTLR_JAR ${BASENAME}) || exit 1
fi
exit 1
能否請你幫我舉一個例子以下行?
DIR="$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)"
我知道我有與集目錄中的批處理文件來定義一個變量=「...」例如,並且$
是commandoline parameter
......但我不知道該怎麼寫在批處理文件中:/
還去除尾隨 「\」,這裏是你可以做什麼: 'code' 集DIRNAME _ =%〜DP0 集DIRNAME =%DIRNAME_:〜0,-1% 'code' 這是一個解決方法(增益),但它的作品。 – CristiFati
謝謝!所以我需要在shell腳本中編寫這行代碼?關於BASH_SOURCE [0]怎麼樣?你能幫我解決BASENAME =「$ {1%。*}」的問題嗎?我已經在尋找舊帖子以及常見的shell和批處理(cmd)命令.... –
BASH_SOURCE [0]是腳本的名稱(在腳本運行**和**源時運行)。 – CristiFati