Команды в скрипте не запускаются, но в терминале они выполняются

Мой сценарий выглядит следующим образом:

#!/bin/sh

rm -rfv /home/user/Documents/Exercise/*

cp -rfv /home/user/Documents/ExerciseShare/ExerciseFiles/Word/Advanced/ /home/tp3/Documents/Exercise/

Если бы я запускал эти команды индивидуально через терминал, они выполнялись бы нормально. Я поместил их в скрипт (как указано выше), и когда я пытаюсь настроить скрипт, окна терминала вспыхивают примерно секунду, и ничего не происходит.

Мои попытки решения:

  1. Добавление wait в конец сценария - не повезло
  2. Сценарий правой кнопкой мыши> Свойства> Разрешения> Выполнить - установить
  3. Попытка Run и Run in Terminal - не повезло

Я использую Ubuntu 12.10 64-bit

0
задан 20 March 2013 в 15:15

2 ответа

После долгих часов работы я нашел маловероятный ответ.

Я создал новый пустой документ и добавил только две строки, которые я хотел (без заголовка #! / Bin / sh):

rm -rfv /home/user/Documents/Exercise/*
cp -rfv /home/user/Documents/ExerciseShare/ExerciseFiles/Word/Advanced/ /home/tp3/Documents/Exercise/

Затем я сохранил документ, щелкнув правой кнопкой мыши> свойства > разрешения> выполнить как программу

Бинго!

Спасибо всем, кто помог!

0
ответ дан 20 March 2013 в 15:15

Согласно вашему комментарию, вы ввели дополнительный возврат каретки (\ r) в конце своей строки shebang

/bin/sh^M: bad interpreter

Если вы откроете свой исходный файл в vim, вы увидите [ 111] персонаж; Вы могли бы просто удалить это. Или вы можете открыть его в шестнадцатеричном редакторе, таком как hexedit, где вы увидите дополнительный 0D.

Новые строки в Linux - это одиночные символы новой строки (\ n, 0x0A), в отличие от новых строк Windows, которые все еще восходят к временам пишущих машинок (\ r \ n, 0x0D 0x0A).

0
ответ дан 20 March 2013 в 15:15

Другие вопросы по тегам:

Похожие вопросы: