给我一个shell,脚本主要是读取当前时间并打印出来,并只想要年月日和时分秒的格式
时间: 2023-02-26 11:06:28 浏览: 439
以下是一个可以实现该功能的 shell 脚本:
```
#!/bin/bash
# 获取当前时间
current_time=$(date +"%Y-%m-%d %H:%M:%S")
# 打印时间
echo $current_time
```
该脚本使用 `date` 命令获取当前时间,并使用 `+"%Y-%m-%d %H:%M:%S"` 格式化时间输出。
在命令行中运行该脚本,即可得到当前的年月日和时分秒的格式的时间输出。
相关问题
用shell脚本编程:文件备份。备份用户指定的文件,将文件备份到目录“文件名_backup”中(若目录不存在则自动建立),备份文件的文件名格式为“文件名_bak_年月日_时分秒”。
好的,可以使用如下的 shell 脚本实现文件备份功能:
```shell
#!/bin/bash
# 获取要备份的文件名
read -p "请输入要备份的文件名: " filename
# 判断文件是否存在
if [ ! -f $filename ]; then
echo "文件不存在,请重新输入!"
exit 1
fi
# 获取当前时间
time=$(date "+%Y%m%d_%H%M%S")
# 构造备份文件名
bakfile=${filename%.*}_bak_$time.${filename##*.}
# 创建备份目录
bakdir=${filename}_backup
if [ ! -d $bakdir ]; then
mkdir $bakdir
fi
# 备份文件
cp -p $filename $bakdir/$bakfile
if [ $? -eq 0 ]; then
echo "备份成功!备份文件为:$bakdir/$bakfile"
else
echo "备份失败!"
fi
```
脚本的具体实现步骤如下:
1. 读取用户输入的文件名。
2. 判断文件是否存在,如果文件不存在则退出脚本。
3. 获取当前时间,用于构造备份文件名。
4. 根据文件名和当前时间构造备份文件名。
5. 创建备份目录,如果目录不存在则创建。
6. 备份文件,使用 `cp` 命令将原文件复制到备份目录,并指定保留文件属性(如权限、时间戳等)。
7. 根据 `cp` 命令的返回值判断备份是否成功,并输出相应的信息。
注意,该脚本只能备份单个文件,如果要备份多个文件,需要在脚本中添加循环处理。同时,该脚本还有一些不足之处,比如没有对用户的输入进行合法性检查,备份目录的命名方式也可以更加灵活。
shell获取当前年月
在shell脚本中,可以使用内置的环境变量或外部命令来获取当前的日期和时间,特别是年份和月份。以下是几种常见的方法:
1. **使用`date`命令**:
```bash
year=$(date +%Y)
month=$(date +%m)
```
这里 `%Y` 和 `%m` 分别代表四位数的年份和两位数的月份。
2. **使用`echo`和`$(...)`**:
```bash
current_date=$(echo $(date +'%Y-%m'))
year=$(echo $current_date | cut -d '-' -f1)
month=$(echo $current_date | cut -d '-' -f2)
```
3. **直接使用变量**: 如果你已经设置过系统的环境变量 `$DATE` 或者 `$TZ`, 可能可以直接读取到年月:
```bash
year=$(TZ=your_timezone date +%Y) # 替换 your_timezone 为你想要的时间区
month=$(TZ=your_timezone date +%m)
```
请注意,你需要确保你的系统支持`date`命令,并且`date`命令可以根据你的系统配置和所在的时区返回正确的值。
阅读全文