shell将执行命令结果赋值给变量出错

2024-12-03 01:40:02
推荐回答(2个)
回答1:

strday=${date -d "$i days" "+%Y-%m-%d"}这一句,
将大括号改为小括号,即:
strday=$(date -d "$i days" "+%Y-%m-%d")
shell语句里面,用到变量提供的信息时,用`variable`或$(variable),而不能用${variable}
注意:第一个不是单引号,而是键盘左上方数字1左边那个波浪号的按键。

回答2:

这语法你看的那本书这么写的?你看的是bash shell的书吗?
#!/bin/bash
if [ $# != 1 ]; then
echo "usage ./$0 [统计天数]"
exit 1

fi
beginday=$1
echo $beginday
for((i=-beginday;i<=0;i++));do #你这个-beginday 没看懂你想表达什么意思。
strday=$(date -d "$i days" "+%Y-%m-%d")
echo $strday
done

如果一行内不包含两条语句可以不用写;
比如
if [ $# != 1 ]
then

if [ $# != 1 ];then