Преимущества Сценариев Shell по сравнению с [закрытым] Python

моя ссылка на навигацию в меню:

 
   Agenda
 

маршруты

import React from 'react';

import styled from 'styled-components';

import { BrowserRouter, Route, Switch } from 'react-router-dom';
import { PrivateRoute, PublicRoute } from './utils/routeAuth';

import Dashboard from './pages/Dashboard';
import Login from './pages/Login';
import Menu from './components/Menu';

const Body = styled.div`
  display: flex;
  flex-direction: column;
  width: 100%;
  background: #edeef0;
  overflow: auto;
`;

const Routes = () => (
  
    
      
      
    
  
);

const NotFound = () => 
not found
; const DefaultContainer = () => ( ); export default Routes;

использует / routeAuth

import React from 'react';

import { Route, Redirect } from 'react-router-dom';

import { getCookie } from './cookie';

export const PrivateRoute = ({ component: Component, ...rest }) => {
  const isAuthenticated = getCookie('token');

  return (
     (isAuthenticated ? (
        
        ) : (
          
        ))
      }
    />
  );
};

export const PublicRoute = ({ component: Component, ...rest }) => {
  const isAuthenticated = getCookie('token');

  if (isAuthenticated) {
    return ;
  }

  return ;
};

для более подробной информации: страница авторизации , navlink

91
задан Paul D. Waite 6 April 2011 в 10:06
поделиться

6 ответов

  • Сценарии оболочки имеют более простые обозначения для перенаправления ввода / вывода.
  • Проще создавать конвейеры из существующих программ в оболочке.
  • Сценарии оболочки используют целые программы.
  • Shell доступен повсеместно (для любого типа Unix) - Python не обязательно установлен.

'Это правда, что вы можете делать все в Python, что вы можете делать в оболочке; Также верно, что в Python есть вещи, которые легки в оболочке (так же, как есть вещи, которые легки в оболочке, но сложны в Python). Знание обоих будет лучшим в долгосрочной перспективе.

79
ответ дан 24 November 2019 в 06:44
поделиться

«Каковы сильные стороны сценариев оболочки, которые делают его незаменимым инструментом по сравнению с Python?»

Оболочка не является обязательной. Как вы думаете, почему их так много? bash, tcsh, csh, sh и т. д. и т. д.,

Python является оболочкой. Не тот, который вы бы использовали для запуска всех команд , но для сценариев он идеален.

Python является более или менее стандартной частью всех дистрибутивов Linux.

Более традиционные оболочки делать слишком много вещей.

  1. У них есть удобный пользовательский интерфейс для запуска команд. Это включает однострочные команды, где оболочка ищет ваш PATH, разветвляется и исполняет запрошенную программу. Он также включает конвейеры, последовательности и параллельные программы (используя ; , | и & ), а также некоторое перенаправление (с использованием > и <).

  2. Они имеют немного вялую возможность, похожую на язык программирования, для запуска сценариев. Этот язык довольно сложен в использовании и крайне неэффективен. Большинство операторов на этом языке требуют разветвления одного или нескольких дополнительных процессов, траты времени и памяти.

Запуск программ из оболочки, перенаправление stderr в файл журнала, и это хорошо. Сделайте это в оболочке.

Почти все остальное можно сделать более эффективно и более наглядно, как скрипт Python.

Вам нужны оба . Однако никогда не следует писать скрипт с операторами if или циклами на традиционном языке оболочки.

Этот язык довольно сложен в использовании и крайне неэффективен. Большинство операторов на этом языке требуют разветвления одного или нескольких дополнительных процессов, траты времени и памяти.

Запуск программ из оболочки, перенаправление stderr в файл журнала, и это хорошо. Сделайте это в оболочке.

Почти все остальное можно сделать более эффективно и более наглядно, как скрипт Python.

Вам нужны оба . Однако никогда не следует писать скрипт с операторами if или циклами на традиционном языке оболочки.

Этот язык довольно сложен в использовании и крайне неэффективен. Большинство операторов на этом языке требуют разветвления одного или нескольких дополнительных процессов, траты времени и памяти.

Запуск программ из оболочки, перенаправление stderr в файл журнала, и это хорошо. Сделайте это в оболочке.

Почти все остальное можно сделать более эффективно и более наглядно, как скрипт Python.

Вам нужны оба . Однако никогда не следует писать скрипт с операторами if или циклами на традиционном языке оболочки.

Почти все остальное можно сделать более эффективно и более четко, как скрипт на Python.

Вам нужны оба . Однако никогда не следует писать скрипт с операторами if или циклами на традиционном языке оболочки.

Почти все остальное можно сделать более эффективно и более четко, как скрипт на Python.

Вам нужны оба . Однако никогда не следует писать скрипт с операторами if или циклами на традиционном языке оболочки.

54
ответ дан 24 November 2019 в 06:44
поделиться

Вы ничего не можете сделать со сценариями оболочки, которые вы не можете сделать с python. Большим преимуществом сценариев оболочки является то, что вы используете те же команды, что и при работе с оболочкой, поэтому, если вы интенсивный пользователь оболочки, сценарии оболочки в какой-то момент станут очень быстрым и простым способом автоматизации работы оболочки

Я также считаю, что легче иметь дело с каналами данных в сценариях оболочки, чем в python, хотя это абсолютно выполнимо из python.

И, наконец, вам не нужно запускать дополнительный интерпретатор для запуска сценарии оболочки, дающие вам очень небольшое, но иногда, может быть, заметное преимущество в скорости и использовании памяти.

Но опять же, сценарии Python гораздо более удобны в обслуживании, я пытаюсь перейти с больших уродливых сценариев оболочки на сценарии Python для этого. Сама причина. Также проще выполнять обработку исключений и контроль качества с Python.

13
ответ дан 24 November 2019 в 06:44
поделиться

The shell is available everywhere. If you stick to a relatively basic set of portable functionality, your scripts can run on cell phones, wireless routers, DVRs, netbooks, workstations, big iron servers, and the like. Python is not necessarily included out of the box on lots of systems, and depending on the environment it may be hard to get it installed.

Learning some shell scripting can also help you learn some command line tricks, since the command line is, well, the shell. It's also good for taking some fairly long and complicated command line, and converting that into a more general script after you realize you'll need it some more.

The shell also has some pretty powerful features; pipelines are a really interesting control construct that is native only to the shell, as far as I know.

6
ответ дан 24 November 2019 в 06:44
поделиться

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

Как правило, небольшой сценарий оболочки будет короче и проще, чем соответствующий Python-программа, но Python-программа будет стремиться изящно принимать модификации, в то время как сценарий оболочки будет иметь тенденцию становиться все менее и менее обслуживаемым при добавлении кода.

Это приводит к тому, что для оптимальной повседневной производительности вам нужна оболочка -скриптовать, но вы должны использовать его в основном для одноразовых скриптов и везде использовать python.

31
ответ дан 24 November 2019 в 06:44
поделиться

не нужно изучать сценарии оболочки, как указывают все предыдущие ответы; но обучение никогда не бывает плохим. это действительно вопрос личных приоритетов. кому-то очень трудно сказать вам, что стоит, а что не стоит вашего времени.

большинство программистов считают, что изучение новых языков с каждым разом становится все проще. (то же самое можно сказать и о естественных языках.) И чем раньше вы начнете, тем лучше.

плюс: изучение языка позволяет вам экстравагантно снимать его ограничения с позиции полного знания и знакомства. это, вероятно, не приведет вас к сексу, но может принести вам пиво от ваших сверстников!

9
ответ дан 24 November 2019 в 06:44
поделиться
Другие вопросы по тегам:

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