Bash Unix脚本:日期输出和换行符(\n)不起作用
我有两个问题Bash Unix脚本:日期输出和换行符(\n)不起作用,bash,shell,unix,Bash,Shell,Unix,我有两个问题 每当我运行下面的代码时,它都会将第二个日期返回到20、30、40、50等等 “\n”对我的代码不起作用,我不知道为什么,我尝试了一些测试,但对于日期的代码,不会转到下一个(已回答) 代码如下: #!/bin/bash echo "Testing Data entry for the 1st 7 days of the month" min=01 max=7 while [ $min -lt 8 ]; do echo -e "\n `date +"$min"%m%Y` $m
#!/bin/bash
echo "Testing Data entry for the 1st 7 days of the month"
min=01
max=7
while [ $min -lt 8 ]; do
echo -e "\n `date +"$min"%m%Y` $min \n" >> test.txt
let min=min+1
done
min=`date +%d -d "-1 month -$(($(date +%-d)-1)) day"`
cat test.txt
echo -e "Testing\nNewline"
echo -n > test.txt
我的预期结果应该是:
01032014 1
02032014 2
03032014 3
04032014 4
05032014 5
06032014 6
2014年3月7日
但结果是:
01032014 1
2032014 2
3032014 3
4032014 4
5032014 5
6032014 6
7032014 7尝试使用
cat test.txt
。
不要回显cat的结果。您可以用以下内容替换您的
回显-e
行以获得新的行:
{ echo; date "+$min %m%Y $min"; echo; } >> test.txt
+1这感觉就像答案一样,
echo$(some命令)
应该在$(some命令)的输出上执行分词,因此将继续和后续IFS分开,echo“$(some命令)”
可能会起作用,但显然没有理由像你提到的那样。你能再解释一下你的预期输出和你所说的1.
是什么意思吗?还有,为什么要在接近末尾时重置min
(看起来你在任何地方都没有使用它)?1。)我的目标是这个输出:01032014 1 020322014 2 03032014 3 04033014 4 05032014 5 06032014 6 07032014 7你将$min
作为命令参数的一部分,因此它会得到某种解释。如果您只想让01..07在{01..07}中为min执行类似于的操作;执行回显“$min$(日期+%m%Y)”;完成