2

При выполнении приведенного ниже сценария я получаю сообщение об ошибке:

Синтаксическая ошибка в строке 1: `('не ожидается.

sudo su - user1 -c "cd $HOME ; tar -cvf $HOME/mine.tar `cat /tmp/$LOGNAME/List`  "

где List file содержит имена некоторых других файлов.

Пожалуйста, помогите мне с некоторым решением.

С уважением, Сумит

2 ответа2

0

Пожалуйста, сделайте эти однострочные команды многострочными и выполните, как напишите в run.sh

#!/usr/bin/env bash
cd $HOME
tar -cvf $HOME/mine.tar
cat /tmp/$LOGNAME/List

Дайте разрешение на выполнение (chmod +x run.sh) и запустите этот скрипт как sh path to the file(run.sh)

например: sh /home/run.sh

0

Ваша оболочка слишком рано расширяется.

Имеет ли $LOGNAME ( в нем? Или содержимое /tmp/$LOGNAME/List?

Bash раскроет $HOME и $LOGNAME до того, как они будут переданы su - когда su затем пытается передать их sh или bash , в них есть неправильные токены.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .