Вопрос сценария оболочки - PullRequest
       0

Вопрос сценария оболочки

0 голосов
/ 13 сентября 2011

просто любопытно, будет ли это на самом деле работать, я смоделировал это по примеру сценария кого-то другого. Мои большие заботы

  • Включена ли переменная при запуске скрипта?
  • В операторах case будет ли работать echo / mv / & close правильно?

Код обновлен

#! /bin/sh

    #save as ads.sh
    #run command: chmod +x ads.sh
    #usage ./ads.sh {on|off}

#stop framework
#/etc/init.d/framework stop

#create backup dir if needed
mkdir -p /var/local/adunits.bkp

    #if ads.sh on
    case "$1" in
    on)

      #move, touch, exit
      echo "Turning Ad support on..."
      mv /var/local/adunits/* /var/local/adunits.bkp
      ;;

    #if ads.sh off
    off)

      #remove tmp
      echo "Ads turned off..."
      mv /var/local/adunits.bkp/* /var/local/adunits
      ;;

    #else
    *)

      echo "Usage: ./ads.sh {on|off}"
      exit 1
      ;;

    esac

#restart framwork
#/etc/init.d/framework start

#bye
exit 0

Спасибо, вперед!

Ответы [ 2 ]

0 голосов
/ 13 сентября 2011

Включена ли переменная при запуске скрипта?

На какую переменную вы ссылаетесь?

В операторах case будет ли работать echo / mv / & close правильно?

Команды mv, вероятно, не будут делать то, что вы от них хотите. Обычно вы не можете иметь подстановочный знак (*) в исходных и целевых аргументах mv. man mv для получения дополнительной информации. Помните, что подстановочные знаки расширяются оболочкой, а не mv; сама команда mv увидит только список аргументов и не сможет узнать, что во втором аргументе был *.

0 голосов
/ 13 сентября 2011

Команды mv выглядят возможно изворотливо.Со страницы руководства mv:

mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory

Обратите внимание, что последний аргумент должен быть целевым файлом или каталогом.

Так что такие вещи:

mv /src_dir/* /target_dir/*

переписать «последний» файл в /target_dir, что, вероятно, не то, что вам нужно.

mv /src_dir/* /target_dir

, вероятно, то, что вы имеете в виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...