linux: (sh 脚本) 无法在单个命令中组合日期变量

linux: (sh script) can not combine date variables in single command

我正在尝试 运行 一些需要日期开始和结束参数的命令,但是当我组合 dateFromdateTo 变量时,它从开始就丢失了。

请检查我的代码并输出最后一行,谢谢。

#! /bin/bash
dateFrom=$(date +"%Y-%m-%d")
dateTo=$(date --date="-7 day" +"%Y-%m-%d")
echo "dateFrom: $dateFrom"
echo "dateTo: $dateTo"
echo "dateFrom: $dateFrom, dateTo: $dateTo"

输出

dateFrom: 2020-04-23
dateTo: 2020-04-16
, dateTo: 2020-04-16

由于 bash-脚本文件中存在 DOS 行终止符,这似乎是一个问题。

我在以下几行中编写并使用了 bash-脚本来解决问题。

此脚本将在生成原始文件的副本后从指定文件中删除 \r 个字符。

您可以将此脚本复制为 dos2unix.sh 并将其命名为:

/home/user: ./dos2unix.sh filename<enter>

执行将生成两个文件:filenames.dos,即原始文件,以及 filename,即从 \r 个字符中清除的文件。

#!/bin/bash

program=$(basename [=11=])

if test $# -lt 1
then
  echo "usage: $program filename"
  echo -e "\nThe original file will be copied as filename.dos"
  exit 1
fi

cp  .dos

tr -d '\r' <.dos >

注意:记得执行:chmod +x dos2unix.sh!