Автор Тема: if функцията в sh скрипт  (Прочетена 1712 пъти)

bILLY

  • Напреднали
  • *****
  • Публикации: 159
  • Distribution: Red Hat 7
  • Window Manager: Windows 10
    • Профил
    • WWW
if функцията в sh скрипт
« -: Jun 29, 2014, 10:00 »
Здравейте, не съм писал от отдавна, но тези дни имах малко време и разцъках по сървъра  ;D (който е вече с 31 дена ъптайм). Та въпроса ми е следния: направих едни sh скриптове в /bin, които например да могат да се стартират от потребителите и да копират прекомпилиран софтуер направо в домашните си директории, като например get-eggdrop, get-psybnc ... обаче, когато стартирам командата за втори път ми изкарва съобщение "cp: cannot overwrite non-directory", което е грозно за крайния потребител и естествено защото се опитва да презапише отново върху същата директория.

Как да направя някакъв if ~/eggdrop exist - then eggdrop.new примерно?
Any suggestions? Че много ми куца шел скриптинга ...   :P
Активен

"UNIX is like sex: If you don't know it, you don't miss it. But if you know it, you'll need it!"
Lars Eilebrecht

Ali Nebi

  • Напреднали
  • *****
  • Публикации: 394
  • Distribution: Centos, Debian, Fedora, Ubuntu
  • Window Manager: Gnome
    • Профил
Re: if функцията в sh скрипт
« Отговор #1 -: Jun 29, 2014, 11:17 »
Здравей,

хвърли един поглед: http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html и тук http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html
Активен

Не се задоволявай да бъдеш дим, когато можеш да бъдеш огън!

bILLY

  • Напреднали
  • *****
  • Публикации: 159
  • Distribution: Red Hat 7
  • Window Manager: Windows 10
    • Профил
    • WWW
Re: if функцията в sh скрипт
« Отговор #2 -: Jun 29, 2014, 11:35 »
Да благодаря, свърши работа. Но пък сега трябва да вкарам някаква номерация след това, защото като е с .new пак го презаписва и вадии съобщения. Трябва да стане нещо като $number.  ???
Активен

"UNIX is like sex: If you don't know it, you don't miss it. But if you know it, you'll need it!"
Lars Eilebrecht

Ali Nebi

  • Напреднали
  • *****
  • Публикации: 394
  • Distribution: Centos, Debian, Fedora, Ubuntu
  • Window Manager: Gnome
    • Профил
Re: if функцията в sh скрипт
« Отговор #3 -: Jun 29, 2014, 12:08 »
Здравей,

защо просто не презапишеш предишния файл или не искаш да го правиш?
Активен

Не се задоволявай да бъдеш дим, когато можеш да бъдеш огън!

Ali Nebi

  • Напреднали
  • *****
  • Публикации: 394
  • Distribution: Centos, Debian, Fedora, Ubuntu
  • Window Manager: Gnome
    • Профил
Re: if функцията в sh скрипт
« Отговор #4 -: Jun 29, 2014, 12:15 »
Иначе можеш да слагаш номерация или пък друг вариант - актуалната версия си седи например eggdrop, а старите версии ги преименувай на eggdrop-20140629 примерно, като слагаш някаква дата.
Активен

Не се задоволявай да бъдеш дим, когато можеш да бъдеш огън!

bILLY

  • Напреднали
  • *****
  • Публикации: 159
  • Distribution: Red Hat 7
  • Window Manager: Windows 10
    • Профил
    • WWW
Re: if функцията в sh скрипт
« Отговор #5 -: Jun 29, 2014, 14:36 »
Оправих се ...

Код:
if [ -d $HOME/eggdrop ] ; then
  cp -rf /etc/pre/eggdrop/ ~/eggdrop$(date +"%s") ; else
  cp -rf /etc/pre/eggdrop/ ~/eggdrop
fi

echo ""
echo  "Getting eggdrop ..."

В крайна сметка, като номер, вкарах броя на секундите %s   seconds since 1970-01-01 00:00:00 UTC ...  :P
« Последна редакция: Jun 29, 2014, 15:47 от bILLY »
Активен

"UNIX is like sex: If you don't know it, you don't miss it. But if you know it, you'll need it!"
Lars Eilebrecht