[英]linux: (sh script) can not combine date variables in single command
我正在尝试运行一些需要日期开始和结束 arguments 的命令,但是当我结合dateFrom
和dateTo
变量时,它从开始就丢失了。
请检查我的代码和 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.