2015-10-25 2 views
4

Я пытаюсь напечатать день недели данной даты. Эта команда работает довольно хорошо:Печать дня недели с точной даты в bash

TARGET=$(date -u -d'2015-10-25' '+%u') 

Но внутри моей Баш скрипт есть ошибка, что должно быть не так?

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

Нет необходимости использовать так много временного переменные и определенно избегают одной цитаты внутри другой отдельной цитаты, которая не будет работать в оболочке.

Упростить это так:

#!/bin/bash 
day=25 
month=10 
year=2015 
command1='date -u -d' 
TARGET=$(date -u -d "$year-$month-$day" '+%u') 
echo $TARGET 
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 

У меня нет ответа на вопрос, почему, хотя

Смежные вопросы