已被阅读 1519 次 | 文章分类:日常随笔 | 2024-11-01 01:03
本文简单介绍.bat和.sh后缀的文件格式
1 bat和sh后缀文件概念
👉.sh文件是Unix/Linux系统上的脚本文件,通常使用Shell语言编写,如Bash或Sh
                                            
#!/bin/bash
VAR="Welcome to Xiaobai!"
echo $VAR
                                            
                                        
                                            👉.bat文件是Windows系统上的脚本文件,通常使用批处理语言编写
                                            
@echo off
set VAR=Welcome to Xiaobai!
echo %VAR%
pause
                                            
                                        
                                            两者都用于执行各种批处理操作,自动化任务、定时执行任务等应用场景.例如可以使用“任务计划程序”来创建一个任务,并指定要运行的脚本
2 详细对比
(1) 文件扩展名
(2) 注释
👉 bat脚本:使用REM或::进行注释
                                            
REM This is a comment
:: This is also a comment
                                            
                                        
                                            👉sh脚本:使用#进行注释
                                            
# This is a comment
                                            
                                        
                                            (3) 变量
👉bat脚本:使用set命令定义变量,引用变量时使用%
                                            
set VAR=value
echo %VAR%
                                            
                                        
                                            👉sh脚本:直接赋值定义变量,引用变量时使用$
                                            
VAR=value
echo $VAR
                                            
                                        
                                            (4) 条件语句
👉bat脚本:使用IF语句
                                            
IF "%VAR%" == "value" (
    echo VAR is value
) ELSE (
    echo VAR is not value
)
                                            
                                        
                                            👉sh脚本:使用if语句
                                            
if [ "$VAR" = "value" ]; then
    echo "VAR is value"
else
    echo "VAR is not value"
fi
                                            
                                        
                                            (5) 循环
👉bat脚本:使用FOR循环
                                            
FOR %%i IN (1 2 3) DO (
    echo %%i
)
                                            
                                        
                                            👉sh脚本:使用for循环
                                            
for i in 1 2 3; do
    echo $i
done
                                            
                                        
                                            (6) 函数
👉bat脚本:没有直接的函数定义方式,通常通过标签和GOTO实现
                                            
:my_function
echo This is a function
GOTO :EOF
                                            
                                        
                                            👉sh脚本:使用function关键字或直接定义
                                            
my_function() {
    echo "This is a function"
}
                                            
                                        
                                            (7) 输出重定向
👉bat脚本:使用>和>>进行重定向
                                            
echo Hello > output.txt
echo World >> output.txt
                                            
                                        
                                            👉sh脚本:同样使用>和>>进行重定向
                                            
echo "Hello" > output.txt
echo "World" >> output.txt
                                            
                                        
                                            (8) 运行方式
👉bat脚本:可以直接在命令行中输入脚本名运行,或者双击脚本文件运行
👉sh脚本:通常需要给予执行权限,并在Shell中运行
                                            
chmod +x script.sh
./script.sh
                                            
                                        
                                    3 常见问题
👉问题1:bat文件双击后闪现一下便消失了
解决方法:在命令最后一行加上pause关键词
                                            
@echo off
set VAR=Welcome to Xiaobai!
echo %VAR%
pause
                                            
                                        
                                            👉问题2:bat文件双击运行后汉字乱码
                                            
@echo off
    
REM set 后跟变量名=变量值,注意不能存在空格
set name=小白GIS
REM 然后我们可以采用%%去使用该数据
echo %name%
REM 我们可以直接进行拼接
set age=7
echo %name%有%age%岁
REM set的变量值可以进行界面交互获取(set /P 变量名=提示信息)
set /P yourname=你的名字是:
echo %yourname%
pause
                                            
                                        
                                            运行后乱码如下
                                                     
                                                
解决方法:打开文件,点击左上角【文件】,然后【另存为】,将编码设置为ANSI
                                                     
                                                
                                                     
                                                
再次双击运行,或者直接将bat文件拖入命令行
                                                     
                                                
👉问题3:cd 找不到路径
解决方法:如果路径中包含空格,则应该将路径加文件名用双引号括起来
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号