с базовым сценарием оболочки, таким как
USER=$1
CMD=$2
/usr/bin/sudo -u $USER $CMD
Я могу запустить
# ./script.sh root "/bin/echo 'apple pie'"
'apple pie'
Однако вместо этого пытаюсь:
#/script.sh root "/bin/date -s '2011-08-24 15:24:30'"
date: the argument `15:24:30\'' lacks a leading `+';
when using an option to specify date(s), any non-option
argument must be a format string beginning with `+'
Try `date --help' for more information.
Я могу повторить ошибку датывручную набрав
/bin/date -s \'2011-08-24 15:24:30\'
date: the argument `15:24:30\'' lacks a leading `+';
when using an option to specify date(s), any non-option
argument must be a format string beginning with `+'
Try `date --help' for more information.
Итак, моя проблема с использованием даты в этом сценарии заключается в том, что одиночные кавычки автоматически экранируются, и эта дата не нравится.Я могу изменить сценарий, чтобы он основывался на $ 1 $ 2 $ 3 «$ 4», но это устраняет универсальную природу этого сценария (который был упрощен для этого поста).
Любые способы сделать сценарий такого типаподдерживать дату без особого случая?