将批处理文件转换为shell脚本文件
我有批处理文件,但我不知道shell脚本。 有人能帮忙吗。 @echo off echo "Program Name :" %0 rem echo "Next param :" %1 echo "Next param :" "Username/Password" echo "User Id :" %2 echo "User Name :" %3 echo "Request ID :" %4 echo "File Name :" %5 echo "Entity Name :" %6 echo "Email Address :" %7 echo "Extract ID :" %8 echo "path name :" %9将批处理文件转换为shell脚本文件,shell,Shell,我有批处理文件,但我不知道shell脚本。 有人能帮忙吗。 @echo off echo "Program Name :" %0 rem echo "Next param :" %1 echo "Next param :" "Username/Password" echo "User Id :" %2 echo "U
cd %9
echo "Process Output files"
IF NOT EXIST C:\OraOutput GOTO MAPERROR
IF EXIST o%8.out (COPY o%8.out %5.csv) ELSE echo "Output file does not exists"
IF EXIST %5.csv (MOVE %5.csv C:\OraOutput\%5.cvs) ELSE echo "Could not move file to Share Drive"
GOTO ENDPROCESS
:MAPERROR
echo "The Share Directory has not been mapped Contact your System Administrator"
EXIT -1
:ENDPROCESS
echo "Process finished goodbye"
谢谢。我假设Bourne和bash差不多兼容,因为这是最常见的。首先,为了将批处理脚本转换为Bourne样式的shell脚本,您需要了解以下一些差异:
#
开头cd
和echo
和exit
也存在于Bourne兼容的Shell中[-e
文件名]
IF
语句变为IF
条件;然后
true语句;否则
虚假陈述;fi
您可以使用多个命令/语句,这些命令/语句用分号分隔,以代替true语句和false语句如果存在o%8.out(复制o%8.out%5.csv),则在与Bourne兼容的shell中回显“输出文件不存在”
# I am assuming %8 means parameter 8 for the script
if [ -e o$8.out ]; then cp o$8.out $5.csv; else echo "Output file does not exist"; fi
或者使用替代缩进(分号可以替换为新行):
注意,我们还引用了cp
的参数,以便在参数中使用空格goto
。您可以参考此堆栈溢出问题(假设bash
或其他Bourne shell样式的脚本方言):阅读任何内容,试着写剧本,带着一个特定的问题来到这里。当我看到这个问题时,在右边我看到了许多类似的问题,你可以参考。
if [ -e o$8.out ]; then
cp "o$8.out" "$5.csv"
else
echo "Output file does not exist"
fi