繁体   English   中英

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

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

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

请检查我的代码和 output 最后一行,谢谢。

#! /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"

output

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 $0)

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

cp $1 $1.dos

tr -d '\r' <$1.dos >$1

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM