Как записать * .sh в mv и запустить файлы

У меня есть два файла config.yml, но я не хочу использовать cron или вводить их вручную. Я хочу назвать их file1.bak и file2.bak. Когда я в состоянии запустить их, я хочу напечатать что-то вроде ./call.sh или ./call2.sh. Сценарий автоматически получит root privelege, изменит file1.bak на config.yml и запустит его. тогда он вернется к файлу file1.bak. Я не хочу постоянного config.yml, потому что я использую два или три отдельных файла в зависимости от того, что я хочу, чтобы они делали. Буду признателен за любую помощь. Для справки это файл config.yml для flexget. Я должен объединить все, но мне нравятся отдельные файлы, чтобы легче находить ошибки. лучей

0
задан 30 July 2013 в 16:57

2 ответа

#!/bin/bash 
mv /full_PATH/file1.bak config.yml
mv /full_PATH/file2.bak config2.yml 
sudo ./config.yml

Это должно сработать ... сохраните этот файл, скажем, "test.sh" и их в терминальном типе ./test.sh

0
ответ дан 30 July 2013 в 16:57

У любого пользователя UNIX должно быть Усовершенствованное Руководство по созданию сценариев Bash как закладка, это я сказал бы, библия когда дело доходит до сценариев оболочки, и я постоянно использую его в качестве ссылки:

http://www.tldp.org/LDP/abs/html/

Не зная, что flexget и как config.yml используется в этом контексте, я предложил бы что-то в строке:

#!/usr/bin/env bash
FILE=$1
CONFIG_PATH="/home/user/yml"
CONFIG_FILE="$CONFIG_PATH/file$FILE.bak"

if [ ! -e $CONFIG_FILE ]
then
    echo "Sorry, $CONFIG_FILE does not exist"
    exit 1
fi

cp $CONFIG_FILE /home/user/config.yml
sudo /home/user/config.yml
rm /home/user/config.yml

Если бы Вы затем хотите использовать file2.bak, Вы добавили бы 2 в качестве параметра к сценарию:

./call.sh 2

Замените 2 1, если Вы хотите использовать file1.bak.

1
ответ дан 30 July 2013 в 16:57

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

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