我正在尝试打印指定日期的星期几。 这个命令效果很好:
TARGET=$(date -u -d'2015-10-25' '+%u')
但是在我的bash脚本里面有一个错误,应该是什么错误?
#!/bin/bash
day=25
month=10
year=2015
command1='date -u -d'
command3=''\'
command2=$year-$month-$day
fullcommand=$command1$command3$command2$command3' '$command3'+%u'$command3
echo $fullcommand
TARGET=$($fullcommand)
echo $TARGET
有一个错误:
date: the argument ‘'+%u'’ lacks a leading '+';
答案 0 :(得分:2)
无需使用如此多的临时变量,并且在单个引用中明确地转义单引号将无法在shell中运行。
像这样简化:
#!/bin/bash
day=25
month=10
year=2015
command1='date -u -d'
TARGET=$(date -u -d "$year-$month-$day" '+%u')
echo $TARGET
答案 1 :(得分:1)
这有效:
#!/bin/bash
day=25
month=10
year=2015
command1='date -u -d'
command3=''\'
command2=$year-$month-$day
fullcommand="$command1 $command2 +%u"
echo $fullcommand
TARGET=$($fullcommand)
echo $TARGET
虽然
,但我没有答案