linux shell 指定月份,循环显示日期
时间: 2024-03-26 12:34:58 浏览: 20
可以使用 `cal` 命令结合循环来实现。
下面是一个例子,指定月份为7月,循环输出该月所有日期:
```
for day in $(cal 07 2021 | awk 'NF {for (i=2;i<=NF;i++) printf "%s ",$i}'); do
echo $day
done
```
解释一下:
- `cal 07 2021` 输出 2021 年 7 月的日历
- `awk 'NF {for (i=2;i<=NF;i++) printf "%s ",$i}'` 过滤掉输出中的非日期部分,只输出日期,例如:`1 2 3 4 ... 31`
- `for day in $(...)` 循环遍历日期,每次循环将日期保存在变量 `$day` 中
- `echo $day` 输出日期
你也可以根据需要修改月份和年份。
相关问题
linux shell 指定日期加1天
您好,您的问题是如何在 Linux Shell 中将指定日期加一天。假设您要将日期字符串 `2021-07-13` 加一天并输出结果,可以使用以下命令:
```
date -d "2021-07-13 +1 day" +%Y-%m-%d
```
这个命令使用 `date` 命令的 `-d` 选项来指定日期,然后使用 `+%Y-%m-%d` 参数来指定输出日期的格式。在日期字符串后面使用 `+1 day` 来将日期加一天。
输出将类似于以下内容:
```
2021-07-14
```
希望这可以回答您的问题。
Linux用shell来循环显示所有sh文件
好的,让我来回答你的问题。
要使用 shell 来循环显示所有的 sh 文件,可以使用以下命令:
```sh
for file in *.sh; do
echo $file
done
```
这个命令会列出当前目录下所有以 ".sh" 结尾的文件,然后逐个打印出来。
如果你想要递归地查找所有目录下的 sh 文件,可以使用 find 命令结合 for 循环,如下所示:
```sh
find /path/to/folder -type f -name "*.sh" | while read file; do
echo $file
done
```
这个命令会在 /path/to/folder 目录下查找所有扩展名为 ".sh" 的文件,并逐个打印出来。注意,在使用这个命令时,必须将 /path/to/folder 替换为你想要查找的目录路径。