shell脚本运行后文件名自带?标记

上午调试一个shell脚本,脚本内容如下:

touch a.txt

mv  a.txt $(date +%m_%d).log

提示错误:mv: cannot stat `a.txt': No such file or directory,手动touch a.txt 发现 脚本运行成功。

然后ls 查看,发现了文件名a.txt?  和  08_03.log? 很疑惑。

1)以为是^M 结尾导致的,在文件中查找,没发现该问题。

2)以为是日期赋值错误,然后再尝试其他方法,发现没问题,

3)再其他linux环境下重新写脚本,运行也没问题。

最终查看文件格式,发现该脚本是dos格式,用vi 打开 

:set ff=unix

然后再运行脚本,问题解决。

 

shell脚本通常用于Linux和Unix系统中,但也可以在Windows环境下通过模拟或特定工具来执行。下面是几个步骤来运行shell脚本: 1. **创建shell脚本**:使用文本编辑器(如`nano`, `vim` 或者 `gedit`)创建一个新的文本文件,后缀名通常是`.sh` (例如`myscript.sh`),然后编写你的命令行指令。 2. **赋予可执行权限**:在Linux/Mac上,使用`chmod`命令为脚本添加执行权限: ``` chmod +x myscript.sh ``` 3. **直接运行**:在终端中,你可以直接输入脚本文件的名字来执行: ``` ./myscript.sh ``` 4. **Windows下的执行**: - Cygwin:如果你使用的是Cygwin,可以安装bash shell,并按照上述Linux方法操作。 - Git Bash 或 Windows Subsystem for Linux (WSL): 这些环境提供了Linux子系统,可以直接使用.bashrc启动脚本。 - 使用Bash on Windows:Microsoft提供了一个名为Bash on Windows的功能,允许用户在其内置的PowerShell中直接运行.sh脚本。 - PowerShell脚本:对于真正的Windows原生脚本,可以考虑用PowerShell编写.ps1文件,然后使用`powershell.exe .\myscript.ps1`来运行。 使用shell脚本的原因包括: - **自动化任务**:简化重复性任务,提高效率。 - **控制流程**:编写结构化的命令序列,便于管理和维护。 - **跨平台兼容**:Linux、Mac和某些Windows环境都能使用。 - **可读性强**:shell脚本语言简洁易懂,适合脚本化运维场景。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值