Создание сценария для передачи нескольким людям и столкнулся с проблемой env
.Сценарий не запустится, если я не укажу $PATH
, $HOME
и $GOPATH
в начале файла.Вот так:
HOME=/home/Hustlin
PATH=/home/Hustlin/bin:/home/Hustlin/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/bin:/home/Hustlin/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Это не выгодно при попытке передать скрипт, и каждый человек должен сам установить эти переменные.Этот файл редко запускается пользователем и чаще всего запускается через crontab
.
. Мне бы хотелось услышать лучший способ кодирования этого, поэтому я не прошу всех, кого отправляю, обновить скриптэти переменные.
Спасибо всем заранее !!!
РЕДАКТИРОВАТЬ Сценарий запускается через crontab
без специальных разрешений.
1,16,31,46 * * * * /home/Hustlin/directory1/super_cool_script.sh
Вот скрипт, который я запускаю:
#!/bin/bash
# TODO Manually put your $PATH and $HOME here.
PATH=/home/Hustlin/bin:/home/Hustlin/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/bin:/home/Hustlin/go/bin
HOME=/home/Hustlin
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# Field1
field1="foo"
# Welcome message.
echo Starting the update process...
# Deposit directory.
mkdir -p $HOME/directory1/sub1/data/body
mkdir -p $HOME/directory1/sub2/system
# Run command
program1 command1
# Run longer command.
program1 command2 field1
sleep 3
program1 command3 -o $HOME/directory1/sub1/data $field1
sleep 1
# Unzip and discard unnecessary files.
unzip $HOME/directory1/sub1/data/$field1 -d $HOME/directory1/sub1/data
rm $HOME/directory1/sub1/data/bar.yaml $HOME/dircetory1/sub1/data/char.txt
rm $HOME/directory1/sub1/data/$field1.zip
# Rename
mv $HOME/directory1/sub1/data/body.json $HOME/directory1/sub1/data/body/$(date -d '1 hour ago' +%d-%m-%Y_%H).json
echo Process complete.
Я изменил большинство имен программ и команд для конфиденциальности.То, что я опубликовал, до сих пор показывает, что делается и как перемещаются файлы.