#!/bin/bash
mv /full_PATH/file1.bak config.yml
mv /full_PATH/file2.bak config2.yml
sudo ./config.yml
Isso deve funcionar ... salve esse arquivo com "test.sh" e digite-os no terminal ./test.sh
Eu tenho dois arquivos config.yml, mas não quero usar o cron ou digitá-los manualmente. Eu quero nomeá-los file1.bak e file2.bak. Quando estou com vontade de executá-los, quero digitar algo como ./call.sh ou ./call2.sh O script terá automaticamente privilégios de root e alterará file1.bak para config.yml e o executará. então ele irá mudar de volta para file1.bak. Eu não quero config.yml permanente porque eu uso dois ou três arquivos separados, dependendo do que eu quero que eles façam. Gostaria de receber ajuda. Para referência, este é um arquivo config.yml para o flexget. Eu deveria combinar tudo, mas eu gosto de arquivos separados para encontrar erros mais fáceis. raio
#!/bin/bash
mv /full_PATH/file1.bak config.yml
mv /full_PATH/file2.bak config2.yml
sudo ./config.yml
Isso deve funcionar ... salve esse arquivo com "test.sh" e digite-os no terminal ./test.sh
Qualquer usuário unix deve ter o Advanced Bash Scripting Guide como um marcador, isso eu diria que é a bíblia quando se trata de shell de script e eu constantemente o uso como referência:
Sem saber o que é o flexget e como o config.yml é usado neste contexto, sugiro algo na linha de:
#!/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
Se você quiser usar file2.bak, adicione 2 como parâmetro ao script:
./call.sh 2
Substitua 2 por 1 se você quiser usar o arquivo1.bak.