Вопросы с тегами [sh]

1

голосов
3

ответ
13k

Просмотры

неожиданные EOF при поиске соответствия `«»при использовании СЭД

Да, этот вопрос задавали много раз, а в ответ он сказал нам \ бежать символ перед одинарной кавычки. В приведенном ниже коде не работает: LIST = "(96634, IV14075295, TR14075685' )" LIST = `Эхо $ LIST | СЕПГ 's /, / AAA / г' `Эхо $ LIST # Вывод: (96634AAAIV14075295AAATR14075685' ) # Теперь я хочу процитировать список список элементов =` Эхо $ LIST | СЕПГ 's /, / \', \ '/ г' `# Давать ошибку # Выход 0 Ошибка: строка 7: неожиданные EOF при поиске соответствия` '' строка 8: ошибка синтаксиса: неожиданный конец файла
Bharat
1

голосов
1

ответ
16

Просмотры

Как выполнить .sh файл в рубине на рельсах

Я пытаюсь выполнить .sh файл в индексных рельсах действия. Стараюсь Exec «ш приложение / контроллеры / myscript.sh» это выполнить его в терминале, то остановите сервер! Я не знаю, почему. И я пытаюсь вывод = система «ш приложение / контроллеры / myscript.sh» это возвращает истину в браузере не то, что в .Sh файле Заранее спасибо :)
yuna
1

голосов
2

ответ
62

Просмотры

как прочитать переменную из текстового файла и присвоить это значение другой переменной, используя сценарий оболочки

У меня есть огромный текстовый файл, который состоит из различных переменных и других данных. Я должен искать строку «имя_пользователя» и получить его значение (имя, после =). имя после = всегда «цитировали» У меня есть один скрипт, который использует этот текстовый файл данные. В одной точке (линии) в коде он должен принимать значение имя_пользователя. Кроме того, в «источнике» сценарий не был выполнен. из-за некоторые права разрешений я не могу добавить эту команду. Я вижу скрипт в первый раз, очень нового для оболочки языка. Я попытался USER_NAME! = "$ USER_NAME!"
Kumar
1

голосов
1

ответ
588

Просмотры

arping Ошибка {привязки: Может не назначить требуемый адрес} при попытке запустить его удаленно

Локальный сервер: Позволяет сказать LOCAL1 удаленный сервер: Допустим, REMOTE1 У меня есть следующий скрипт в LOCAL1 сервере; #! / Bin / ш Comm1 = `arping -c -s 3 192.168.xxx.xx 192.168.yyy.yy | Grep "ответ от 192.168.yyy.yy" | AWK '{печать $ 2, $ 3, $ 4}' | хвост -1 | AWK '{печати $ 3}' `COMM2 = "192.168.yyy.yy", если [[ "$ Comm1" == * "$ Comm2" *]] затем эхо "IP запущен и работает нормально" еще эхо«IP не и работает»фи При запуске этого скрипта в локальном сервере, я получаю желаемый результат, который„IP запущен и работает нормально“. Но если я копирую тот же сценарий для REMOTE1 сервера и попытаться выполнить с REMOTE1 сервера от LOCAL1 сервера, он выполняет сценарий, но дает следующий результат; связать: Невозможно присвоить требуемый адрес IP не является и работают так, REMOTE1 сервер может выполнить скрипт на LOCAL1 сервере, но он пропускает истинное состояние с ошибкой, как я уже говорил выше. FYI, я побежал следующую команду на сервере REMOTE1; SSH [email protected] /root/script.sh Любой идеи, где И идут не так, или как преодолеть эту ошибку?
Muthu
1

голосов
2

ответ
938

Просмотры

Открыть терминал, запустите скрипт Python и держать его открытым для достижения результатов?

Как получить скрипт ш для запуска нового терминала, выполнить питон скрипт и сохранить это работает? Сценарий питона должен работать непрерывно в бесконечном цикле, выплевывая результаты, как они появляются в случаях, когда пытаемся с ш-скриптом для гнома-терминала просто получить:. Дочерний процесс нормально завершился со статусом 2 вручную было бы просто: питон дом / убунт / pyscript.py Может кто-то дать представление о том, как это сделать? У меня есть список скриптов для запуска, так прибегая к ручному решению является утомительным.
Joey de La Moey
1

голосов
0

ответ
330

Просмотры

ЭЕ модули питона самозагрузки Установки - самозагрузки действие 1 возвращается ненулевой код возврата

Я пытаюсь установить питон модули через действия бутстраповских ЭМИ Console, выполнив следующие действия: Загрузка файла: s3: //mybucket/bootstrap/install_python_modules.sh, содержащий следующий скрипт: #! / Bin / набор ш -e -x Sudo APT-получить установку питона-Setuptools Sudo easy_install пип Судо пип установить -U панд Добавление действия начальной загрузки в консоли (пользовательских действий) со следующим адресом сценария: s3: //mybucket/bootstrap/install_python_modules.sh и со следующим именем : «Установить модули питона» Проверить этот шаг в изображении кластер получает прекращается со следующей ошибкой: на мастер-экземпляр (я-0c8dffa0aa85c8b62), бутстраповском действие 1 возвращается ненулевой код возврата
Simonidas
1

голосов
0

ответ
329

Просмотры

Shell scrilpt : binary operator expected

I have a bug in my shell script, I know it is at the while loop but I cant see it, I already check spaces. I also try to use test instead of parenthesis but I have the same error If I comment the while loop my code works line 45: [: -1e: binary operator expected my code is #!/bin/sh # pe request #$ -pe mpi_16 32 #### 16 core : 'mpi_16 16' || 24 core : 'mpi_24 24 ' # our Job name #$ -N test3MD #$ -S /bin/sh #$ -q dulce.q #### 16 core : '2687wv2.q' || 24 core : '2697v2.q' #$ -V #$ -cwd # needs in # $NSLOTS # the number of tasks to be used # $TMPDIR/machines # a valid machiche file to be passed to mpirun # enables $TMPDIR/rsh to catch rsh calls if available echo "Got $NSLOTS slots." cat $TMPDIR/machines ################ mpi execute ############################# MPI_HOME=/opt/intel/impi/4.0.0.028 MPI_EXEC=$MPI_HOME/bin64/mpirun cd $SGE_O_WORKDIR rm ./POTCAR cat /share/VASP_POTCAR/PAW_PBE_VASP52/C/POTCAR >./POTCAR cat /share/VASP_POTCAR/PAW_PBE_VASP52/Li/POTCAR >>./POTCAR runVASP=/opt/vasp/vasp.5.4/vasp.5.4.1/bin/vasp_std runVASP_NonCol=/opt/vasp/vasp.5.4/vasp.5.4.1/bin/vasp_ncl runVASP_GAMMA=/opt/vasp/vasp.5.4/vasp.5.4.1/bin/vasp_gam i=1 while [ $i -1e 10 ] do cp POSCAR POSCAR.$i $MPI_EXEC -machinefile $TMPDIR/machines -n $NSLOTS $runVASP > stdout cp CONTCAR POSCAR cp REPORT REPORT.$i cp HILLSPOT PENALTY let i=i+1 done Thanks
Dulce Camacho
1

голосов
2

ответ
133

Просмотры

Получить выбранное количество и размер файла расширения в каталоге

Как напечатать только .txt или .csv файлов и их человеческого читаемый размер в папку Пример: Тип файла | Общее количество | Общий размер .TXT 30 40Мб Что я сделал до сих пор: $ найти. -типа ф -name "* .txt | CSV" | туалет -l
Tes Cix
1

голосов
1

ответ
50

Просмотры

не в состоянии выполнить следующий оператор в сценарии оболочки после запуска банки приложения Java с помощью поЬира

Не в состоянии выполнить другую команду после того, если я бег Java банка файл (который присутствует на другой хост) из моей оболочки script.I попытался с помощью поЬира, но до сих пор не в состоянии выйти. Ниже мой скрипт #! / USR / бен / окр Баш sshpass -п "$ {массив [1]}" SSH -oStrictHostKeyChecking = нет $ {массив [0]} @ $ {массив [2]} «CD $ {массив [3]} && эхо -ne '\ п' | поЬир Java -jar MyApp.jar "; # Некоторые другие инструкций эхо «следующего оператор» уже пытался скрипты с поЬирами внутри не выйти правильно, но это не сработало.
Yogesh.Kathayat
1

голосов
3

ответ
41

Просмотры

Нужен способ подсчета времени выполнения команды Unix в моем питон скрипт

Ну у меня есть сценарий питона для тестирования продукта (на работе), которые в определенных точках в коде работает несколько Баш .sh скриптов для тестирования отдельных частей продукта. Один Баш скрипт запускает команду для запуска ffplay с испытательным устройством, подключенным, чтобы проверить, насколько быстро он реагирует и на самом деле начинает запись. Как я могу измерять время с точки subprocess.Popen ( «баш test.sh», оболочки = True) (который содержит команду гнома-терминал для запуска теста) начинается, до того момента, когда откроется окно ffplay и я могу посмотреть прямую трансляцию (около 2 до 3 секунд). Я искать трудно, прежде чем достичь здесь, но все, что я нашел связан с использованием «времени» перед командой терминала, чтобы получить реальный, пользователь и SYS вывод времени, но это не работает для меня, и я ожидал, что-то связанное с подпроцессом общаться или что-то остальное. Любой совет высоко ценится! Спасибо!
Angelo Catana
1

голосов
2

ответ
163

Просмотры

Ros среда в корне

У меня есть ROS (кинетическая) среда, установленная на малиновой пи 3 и пытаюсь получить ROS выполнить при запуске с помощью простого Баша скрипта, который вызывает roslaunch. Ros работает в домене пользователя, но не при вызове из корня. Вот мой launch_ros.sh скрипт: #! / Bin / Баш источник экспорта /home/pi/ros_catkin_ws/devel/setup.bash PYTHONPATH = / Opt / ROS / Кинетические / Lib / python2.7 / расстояние-пакеты roslaunch my_pkg pkg_launch. запуск при запуске Судо /home/pi/Desktop/ros_launch.sh в roscore падает с ошибкой: не удается запустить узел типа [rosout / rosout]: не удается найти узел [rosout] в пакете [rosout] не удалось запустить основную службу [/ rosout] отслеживающий за исключением было написано в лог-файл Но, если я закомментировать источник /home/pi/ros_catkin_ws/devel/setup.bash и выполнить /home/pi/Desktop/ros_launch.sh, РОС работает отлично , Также стоит отметить, если я покину выше исходную строку незакомментированной при работе в домене пользователя я получаю ту же ошибку, как и я в корне. Я думаю, что это может указывать меня к решению, но я все еще очень новое для ROS. Кто-нибудь сталкивался с этим вопросом и нашли решение?
Cal Dilworth
1

голосов
0

ответ
263

Просмотры

How do you use file lists (.xcfilelist) within Xcode 10 script build phases?

Начиная с Xcode 10, построить фазы сценария можно использовать списки файлов (.xcfilelist) для ввода и вывода вместо указания входных / выходных файлов напрямую. Эти файлы, кажется, поддерживают комментарии (образец WWDC показал командную строку комментирует сверху), пустые строки (также в образце), а в противном случае ожидать один путь к файлу в строке. Если эти файлы содержат строить настройки (например, $ (SRCROOT)), они разлагаются до вызова сценария, так же, как они были расширены, если путь к файлу непосредственно в качестве ввода / вывода файла. Это звучит как отличная функция, но как бы вы использовать эти списки файлов в Вашем сценарии? При указании файлов непосредственно, вы имели переменные оболочки SCRIPT_INPUT_FILE_COUNT и SCRIPT_OUTPUT_FILE_COUNT, а затем одна переменная для каждого входного / выходного файла, названный SCRIPT_INPUT_FILE_ # и SCRIPT_OUTPUT_FILE_ # где # используется, чтобы быть номер счета вверх. Если предположить, что у вас есть равное количество входных / выходных файлов, этот сценарий будет печатать их всех: #! / Bin / ш: $ ((я = 0)) в то время как [$ я -lt "$ SCRIPT_INPUT_FILE_COUNT"] сделать Eval fileIn = "\ $ SCRIPT_INPUT_FILE _ $ {я}" Eval fileOut = "\ $ SCRIPT_OUTPUT_FILE _ $ {я}" эхо "$ fileIn -> $ fileOut": $ ((я = я + 1)) сделано Это совместимая оболочка чистой POSIX сценарий, да, вы можете сделать его еще лучше, когда требующий Баш, но приведенный выше код должен работать с любой совместимой ш оболочкой (которые также promisses при использовании #! / bin / ш, а не #! / bin / Баша). Но при использовании списков файлов SCRIPT_INPUT_FILE_COUNT 0. Вместо этого вы получите SCRIPT_INPUT_FILE_LIST_COUNT и SCRIPT_OUTPUT_FILE_LIST_COUNT, и переменные SCRIPT_INPUT_FILE_LIST_ # и SCRIPT_OUTPUT_FILE_LIST_ #, содержащие пути к предварительно обработанным спискам файлов, в которых все комментарии и пустые строки были раздели и все строят настройки уже были расширены. Теперь, как бы я идти об использовании этих списков файлов в моем сценарии? Как бы крошечный образец сценарий выше производить тот же вывод, используя списки файлов в Xcode? Я не очень хорошо на языке сценариев командной оболочки, и я ищу для чистого раствора, который не требует какого-либо другого интерпретатора сценариев, но ш. как бы я идти об использовании этих списков файлов в моем сценарии? Как бы крошечный образец сценарий выше производить тот же вывод, используя списки файлов в Xcode? Я не очень хорошо на языке сценариев командной оболочки, и я ищу для чистого раствора, который не требует какого-либо другого интерпретатора сценариев, но ш. как бы я идти об использовании этих списков файлов в моем сценарии? Как бы крошечный образец сценарий выше производить тот же вывод, используя списки файлов в Xcode? Я не очень хорошо на языке сценариев командной оболочки, и я ищу для чистого раствора, который не требует какого-либо другого интерпретатора сценариев, но ш.
Mecki
1

голосов
1

ответ
118

Просмотры

Вывод на экран заставку или диалоговое окно с Баш скрипт, а скрипт работает

Я хочу, чтобы создать / активный диалог заставки в то время как мой сценарий выполняется в фоновом режиме, чтобы сообщить пользователю, что происходит. Мой файл сценария запускает различные компоненты местного применения и имеет кучу слов и вещей, которые пользователь не должны видеть / не поймет. Я знаю, как сделать скрипт запуска в фоновом режиме, но я хотел бы знать, как я могу, возможно, вызвать диалоговое окно, в новое окно терминала, уведомления или подобное, чтобы пользователь мог знать, когда каждый компонент начал. Например у меня есть 4 компонента, так что коробка будет подойти и сказать: Компонент 1 из 4 успешно начал .. Компонент 2 из 4 успешно запущен .. и так далее ... Любая помощь оценили, как я искал какое-то время, не повезло , Одна вещь, чтобы добавить, что я был в состоянии открыть новое окно терминала с помощью следующего кода:
User-78436752871
1

голосов
1

ответ
103

Просмотры

Понимание команды командного интерпретатора «читать»

Я пытаюсь понять оболочки UNIX и «читать» команда озадачивает меня. В следующем фрагменте (или «в то время как-читать» идиома) показывает, эта команда «ест» линию стандартного ввода. (Читай -r Foo; эхо "*** Перед котом ***; кошки)
Villetaneuse
1

голосов
1

ответ
45

Просмотры

Global модифицирован $ PATH в анзибле не работает, как ожидалось от обычной оболочки Linux

Я хочу, чтобы загрузить некоторые бинарные файлы, как Helm и сделать их по всему миру, используя имеющийся $ PATH. Чтобы избежать загрузки с привилегиями суперпользователя или же должны шагов (скачать с обычного пользователя и перейти к некоторой папке бен в $ PATH, как / USR / местные / бен), моя идея состояла в том, чтобы создать $ HOME / бен и добавить его в $ PATH. Этот блог статья была использована, чтобы добавить пользовательский путь к / и т.д. / окружающей среде. Тогда я перезагрузить его, как описано здесь. Это мой POC пьес, где я пытаюсь добавить EXA: - Название: Тест хостов: все ВАР: - Bin: / Главная / бродяга / bin задачи: - Название: Тестовый файл Задача: путь: "{{бен}}" состояние: каталог - имя: Добавить {{бен}} на пути стать: да lineinfile:> Dest = / и т.д. / состояние окружающей среды = настоящие backrefs = да регулярное выражение = 'PATH = ([ "] *) ((* {{?!.? .? бен}}) *) ([ "] *) $» строка =" PATH = \ 1 \ 2: {{Бен}} \ 3" - название: Проверка path1 оболочки: эхо $ PATH - Имя: Скачать EXA разархивировать: SRC: https://github.com/ogham/exa/releases/download/v0.8.0/exa-linux -x86_64-0.8.0.zip Dest: "{{}} бен" remote_src: да - имя: перезагрузка оболочки окр файла: для окр в $ (кот / и т.д. / окружающая среда), сделать экспорт $ (эхо $ окр | SED - е 's / "// г'); сделано - имя: Проверьте путь после перезагрузки окр файла оболочки: эхо $ PATH - имя: Test EXA из PATH оболочки: экс-Linux-x86_64 --version В последнем таше Test EXA из PATH он выдает ошибку: "STDERR": " / бен / ш: 1: экса-Linux-x86_64: не найдены "команды эхо $ PATH остаются как на "стандартный вывод":" / USR / местные / SBIN: / USR / местные / бен: / USR / SBIN: / USR / бен: / SBIN: / бен: / USR / игры: / USR / местные / игры», но работа модифицировано / и т.д. / окружающей среды. Когда я иду в SSH на машине без анзибля, $ PATH в порядке, а также экс-Linux-x86_64 --version работы: ~ $ Эхо $ PATH /home/vagrant/bin:/home/vagrant/.local/bin:/ USR / местные / SBIN: / USR / местные / бен: / USR / SBIN: / USR / бен: / SBIN: / бен: / USR / игры: / USR / местные / игры: / Главная / бродяга / бен: / оснастке / бен среда Ubuntu система 18,04 хоста работает Vagrant с 16,04 поля Ubuntu. Анзибль был выполнен Vagrant на Ubuntu 16.04. Возможные обходные Использование отдельной переменной ENV При установке переменного окружения, как это - имя: Test EXA из PATH оболочки: экс-Линукс x86_64 среды --version ПУТИ: "{{ansible_env.PATH}}: {{}} бен" его работает. Но я должен применять эти строки, по крайней мере, на плей-уровне. Я хотел бы установить его глобально как / и т.д. / окружающую среду делает регулярные оболочки. Эти вопросы, кажется, имеют ту же цель, но на Solaris. Answear, кажется, только установить $ PATH от хозяина, который не полезно для меня, так как обычай бен каталог не существует. Используйте только абсолютные пути - имя: Test EXA из PATH оболочки: «{{}} бен / экс-Linux-x86_64 --version» Это вызывает меньше накладные расходы, но вы, чтобы помнить, предваряя ваши команды всегда с переменным пути. Кажется также подвержены ошибкам Понимание проблемы я хочу реальное решение и понять, что вызывает проблему. Это не для меня ясно, почему $ PATH модификация так трудно на анзибль, где это можно сделать довольно легко в нижележащей системе Linux. Этот вопрос говорит, что мы не имеем интерактивный сеанс в анзибле. Там, кажется, нет $ PATH имеющиеся. Согласно документации, можно архивировать, передав -l колотить. Так что я нашел следующую работу: - имя: Test EXA из PATH оболочки: Баш -l -c "экс-Linux-x86_64 --version" Но следующий результат ошибки: - Название: Тест экс из PATH оболочки: экс-Linux-x86_64 --version арг: исполняемый: / bin / Баш -l Здесь анзибль ломает команда с неправильным процитировать из аргументов: «„/ бен / Баш -l“-c 'экс-Linux-x86_64 --version» Этот билет рекомендует команду анзибль, чтобы это исправить, так что мы получаем логин оболочки с $ PATH. С 2014 года, никакого реального решения не было представлено на всех. Вопросы Какова цель типов оболочки различно, которые получают доступ к модифицированному $ PATH или нет? Почему анзибль усложняет вещи? Не было бы проще предоставить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? Но следующий результат ошибки: - Название: Тест экс из PATH оболочки: экс-Linux-x86_64 --version арг: исполняемый: / bin / Баш -l Здесь анзибль разбивает команду с неправильными процитировать из аргументов: «'/ бен / Баш -l»-c 'экса-Linux-x86_64 --version» Этот билет рекомендует команду анзибль, чтобы исправить это, так что мы получаем оболочку входа в систему с $ PATH. С 2014 года, никакого реального решения не было представлено на всех. Вопросы Какова цель типов оболочки различно, которые получают доступ к модифицированному $ PATH или нет? Почему анзибль усложняет вещи? Не было бы проще предоставить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? Но следующий результат ошибки: - Название: Тест экс из PATH оболочки: экс-Linux-x86_64 --version арг: исполняемый: / bin / Баш -l Здесь анзибль разбивает команду с неправильными процитировать из аргументов: «'/ бен / Баш -l»-c 'экса-Linux-x86_64 --version» Этот билет рекомендует команду анзибль, чтобы исправить это, так что мы получаем оболочку входа в систему с $ PATH. С 2014 года, никакого реального решения не было представлено на всех. Вопросы Какова цель типов оболочки различно, которые получают доступ к модифицированному $ PATH или нет? Почему анзибль усложняет вещи? Не было бы проще предоставить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? экс-Linux-x86_64 --version арг: исполняемый: / bin / Баш -l Здесь анзибль разбивает команду с неправильным процитировать из аргументов: « '/ бен / Баш -l' -c«экс-Linux-x86_64 --version »Этот билет рекомендует команду анзибль, чтобы исправить это, так что мы получаем оболочку входа в систему с $ PATH. С 2014 года, никакого реального решения не было представлено на всех. Вопросы Какова цель типов оболочки различно, которые получают доступ к модифицированному $ PATH или нет? Почему анзибль усложняет вещи? Не было бы проще предоставить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? экс-Linux-x86_64 --version арг: исполняемый: / bin / Баш -l Здесь анзибль разбивает команду с неправильным процитировать из аргументов: « '/ бен / Баш -l' -c«экс-Linux-x86_64 --version »Этот билет рекомендует команду анзибль, чтобы исправить это, так что мы получаем оболочку входа в систему с $ PATH. С 2014 года, никакого реального решения не было представлено на всех. Вопросы Какова цель типов оболочки различно, которые получают доступ к модифицированному $ PATH или нет? Почему анзибль усложняет вещи? Не было бы проще предоставить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? Этот билет рекомендует команду анзибль, чтобы исправить это, так что мы получаем оболочку входа в систему с $ PATH. С 2014 года, никакого реального решения не было представлено на всех. Вопросы Какова цель типов оболочки различно, которые получают доступ к модифицированному $ PATH или нет? Почему анзибль усложняет вещи? Не было бы проще предоставить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? Этот билет рекомендует команду анзибль, чтобы исправить это, так что мы получаем оболочку входа в систему с $ PATH. С 2014 года, никакого реального решения не было представлено на всех. Вопросы Какова цель типов оболочки различно, которые получают доступ к модифицированному $ PATH или нет? Почему анзибль усложняет вещи? Не было бы проще предоставить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? T это будет легче обеспечить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика? T это будет легче обеспечить регистрационную оболочку, что решить эту проблему? Есть ли причины, почему они сделали то, что они сделали? Как мы можем справиться с вытекающими отсюда проблемами? Что лучше практика?
Lion
1

голосов
3

ответ
2.5k

Просмотры

Подставив переменные окружения в файле: AWK или СЭД?

У меня есть файл переменных окружения, которые я источник в сценариях оболочки, например: # Это комментарий ONE = 1 ДВА = 2 ТРИ = ТРИ # End В моем сценарии, я источник этого файла (предположит, что это называется»./vars' ) в текущей среде, и изменения (некоторые из) переменных на основе пользовательского ввода. Например: #! / Бен / ш # Чтение исходных переменных ./vars # Изменить переменную ТРЕТИЙ = 3 # запись переменных обратно в файл ?? AWK 'BEGIN {FS = "="} {печать $ 1 = $$ 1}' ./vars Как вы можете видеть, я экспериментировал с AWK для записи переменных обратно, СЭД тоже. Безуспешно. В последней строке сценария не удается. Есть ли способ сделать это с помощью AWK или СЭД (желательно сохранение комментарии, даже комментарии с характером символа «=»)? Или я совмещаю «читать» с струнной резки в время цикла или какой-либо другой магии? Если это возможно, я хотел бы избежать Perl / Python и использовать только инструменты, доступные в Busybox. Большое спасибо. Edit: возможно использование случай может дать понять, что моя проблема. Я держу конфигурационный файл, состоящий из объявления переменных окружения оболочки: # Файл: network.config NETWORK_TYPE = проводная NETWORK_ADDRESS_RESOLUTION = NETWORK_ADDRESS = DHCP NETWORK_ADDRESS_MASK = Я также сценарий под названием 'setup-network.sh': #! / Bin / ш # File : не setup-network.sh # Чтение источник конфигурации network.config # Настройка сети NETWORK_DEVICE = нет, если [ "$ NETWORK_TYPE" == "проводной"]; то NETWORK_DEVICE = eth0 ц, если [ "$ NETWORK_TYPE" == "беспроводной"]; то NETWORK_DEVICE = wlan0 фи Ifconfig -i $ NETWORK_DEVICE ... и т.д. У меня есть сценарий под названием 'configure-network.sh': #! / bin / ш # Файл: настройки-сети. ш источник конфигурации # Чтение network.config эхо «Введите тип сетевого подключения:» эхо «1. Проводная сеть» эхо «2. Беспроводная сеть» чтения -p «Тип:» -n1 типа, если [ «$ TYPE» == " 1" ]; затем # Обновление переменной среды NETWORK_TYPE = проводной Элиф [ "$ ТИП" == "2"]; то файл # Обновление переменной среды NETWORK_TYPE = беспроводной фи # конфигурации Перепишите, заменяя обновленное значение # о NETWORK_TYPE (и любые другие обновленные переменные уже существующие # в файле network.config), так что последующие вызовы # «setup-network.sh 'прочитать обновленную конфигурацию. # TODO Как переписать конфигурационный файл, обновляя только переменные уже существующим в конфигурационном файле, предпочтительно оставляя комментарии и пустые строки нетронутыми? Надеюсь, что это очищает вещи немного. Еще раз спасибо.
Simon
1

голосов
2

ответ
2.9k

Просмотры

Output standard OK / FAILED messages from custom init.d script

I have a few questions regarding an init script I'm writing. I haven't actually done it from scratch before so there are probably several tips and tricks I don't know about. Also, shell script is not something I have used a lot so the syntax took a bit of getting used to. First of all I have a function to see if the application is running. The reason for this, instead of lockfiles or similar, is that I only want ONE instance and the application is a bit buggy and plugins can sometime linger even if the main application is killed. So I have something like. isrunning() { pids=`ps aux | grep -e 'FooBar' | grep -v grep | awk '{print $2}'` if [ ! -n "$pids" ]; then return 1 else return 0 fi } Is there a better way? I start the main application with daemon --user apache "./FooBar" but that hung the script execution on that line until FooBar was terminated. daemon --user apache "FooBar&" works though. But it looks like the [OK] / [FAILED] that shows up when running the init script is actually output by the daemon function? So even if the execution fails, daemon still reports [OK] since the process of FooBar is detached. Is there a way to get daemon NOT to get stuck without detaching the process? I have tried the -d option etc but no luck. Otherwise I was thinking of just doing a sleep 3 and then check isrunning which works fine. But then I don't know how to print the [OK] / [FAILED] messages in the nice pretty way that init scripts normally do. Is there perhaps a function one can use to print this in the standard form? UPDATE I found the solution to printing the messages. It seems it actually are functions for this. success and failure will print the messages. The daemon issue remain though. Any way to get rid of &? UPDATE 2 I found a workaround and used su -m -c "./FooBar&" apache and checking if the application was running after that. Depending on the result I print the correct message.
inquam
1

голосов
1

ответ
993

Просмотры

хрон неудачу в распакуйте файлы

У меня есть скрипт, который я могу успешно запустить из командной строки. Однако, когда я пытаюсь запустить тот же сценарий в хронах, она успешно работает до той части, где разархивирование файлов происходит, а затем терпит неудачу в распакованных частях. Эхо «FILES» UnZip происходит и тогда процесс не удается. Любые идеи, почему я в состоянии запустить скрипт успешно из командной строки, но не как хроны и почему это может быть недостаток в распакованных частях? Вот распакуйте часть сценария: # Распакуйте сжатые файлы, которые были доведены до эха «\ п *** UNZIP ФАЙЛЫ ***» CD $ FILES_DIR для г в * .zip; делать архиватор, $ Z; сделанный
Zack Macomber
1

голосов
1

ответ
274

Просмотры

URL, чтобы загрузить последнюю версию Apache (HTTPD)? [закрыто]

Я пишу немного Баш скрипт, в котором я хочу, чтобы загрузить последние стабильные версии Apache (HTTPd) и PHP. Разъяснение: Я не прошу для «текущей» версии от 17 мая 2012 года, я прошу для «последней» версии от любой даты запуска сценария (в будущем). Какой самый лучший способ сделать это? Я знаю, что я могу получить, например, Apache из http://httpd.apache.org/download.cgi, но я не хочу, чтобы разобрать эту страницу, чтобы узнать, что последняя версия, а затем отправить форму выбрать зеркало. В идеале я хочу просто быть в состоянии позвонить на один URL, как: Wget http://httpd.apache.org/download/latest Но я, видимо, URL-адреса, как выше, не существует - или они? Если нет, то самый лучший способ, чтобы сделать сценарий скачать последнюю версию?
Camden S.
1

голосов
1

ответ
2.5k

Просмотры

Как я могу предотвратить вариант, который требует аргумента, чтобы использовать следующий вариант, когда ни один аргумент не задан?

У меня есть следующий код в test.sh: в то время как getopts «е: я:» опц; делать случай $ выбрать в е) эхо $ OPTARG я) эхо $ OPTARG Теперь, если я бегу ./test.sh -f Я получаю сообщение об ошибке: опция требует аргумент - я Однако, когда я бегу ./test.sh - е -i проверить это эхо -i. Я знаю, что это потому, что он просто получает следующий аргумент, разделенный пробелом, но есть простой способ справиться с этим? Я мог бы сделать, если [$ Optarg == "-i"]; затем выйти 1, но я надеюсь, что есть простой способ, когда у меня есть несколько вариантов.
Niek de Klein
1

голосов
1

ответ
870

Просмотры

Как создать эхо-устройства в Linux?

Я работаю над портированием этот Баш скрипт к Linux с HP-UX. Там, кажется, команда remsh opcfdp01 "найти $ {TOOLS_DIR} -user $ {ADMIN_USER} -exec CHMOD а + RWX {} \;" </ DEV / эхо> / DEV / нуль 2> & 1 файл устройство / DEV / эхо появляется для печати выхода на HP-UX; Однако, нет такого файла нет, кажется, существует в Linux. Мне было интересно, как я мог бы идти о создании / Dev / эха в Linux.
Justin
1

голосов
1

ответ
535

Просмотры

Использование Ожидать с муравья построить файл

У меня есть программа командной строки, и я пытаюсь автоматизировать взаимодействие с этой программой с помощью Expect. Программа запуска, и выполнив команду «муравей runconsole» в файле сборки. Я также встроенный скрипт Expect в Баш скрипт. В настоящее время мой код выглядит следующим образом: # / bin / Баш CD $ HOME / MYPROJ / сборки / USR / бен / ожидать -
E T
1

голосов
3

ответ
51

Просмотры

Результаты исполнения различны, когда я выполнения Баш скрипт непосредственно и через ш

Я собой файл new.sh I = 5 я = $ [я + 1] Эхо $ я, когда я исполняю ./new.sh, это показывает 6. Но когда я выполняю "ш new.sh", он показывает $ [ я + 1] в качестве выходного сигнала. Я просто хочу знать, почему, и мне нужен код, который будет работать на обоих.
Dheeraj Ram
1

голосов
2

ответ
180

Просмотры

Bourne сценарии оболочки с пользовательским вводом

Я пытаюсь научить себя основу Bourne сценариев командной оболочки с помощью учебника я заимствованный из библиотеки, и я работаю через вопросы в конце каждой главы. Тем не менее, я только что получил один, и я озадачен ... Написать скрипт, который принимает ноль или более аргументов и печатает последний аргумент в списке. Например, если аргумент «MyProgram arg1 arg2 arg3», выход будет «arg3». Может кто-нибудь дать мне несколько советов о том, как установить это один вверх? Я пытаюсь изучить раздел на входе и аргументы пользователя, но я не работал с этим много до сих пор, так что я не так много практики еще.
1

голосов
2

ответ
226

Просмотры

Shell скрипт для цикла: переменная странность

Мой снаряд-фу слаб, и эти SGI (IRIX 6.5) коробки не помогают. Он работает, как я ожидал бы на Linux. Конечная цель состоит в том, чтобы запустить один или несколько сценариев оболочки на удаленной системе. Существует один сценарий оболочки в подходящем месте, так что это должно быть просто: $ SSH remote.host «/ бен / ш -c„для с в * .sh, делать эхо \ $ s; Done“» ы - Undefined переменной. ..huh, ок. Из случайного любопытства, просто изменить имя переменной: $ SSH remote.host «/ бен / ш -c„для г в * .sh, делать эхо \ $ я, сделал“» 12 Это аналогично Fail-индуцирующего с этим: $ SSH remote.host «/ бен / ш / -c„для с в `Ls * .sh`, делать эхо \ $ s, сделано“»\ с - Неопределенная переменная Может кто-то меня научить магии заклинания для IRIX?
GraduateOfAcmeU
1

голосов
1

ответ
1.4k

Просмотры

как автоматизировать обратный туннель с кронтабом: ошибка синтаксиса

Я следую учебник о том, как запустить обратный SSH туннель, который найден в http://wiki.fabelier.org/index.php?title=Permanent_Reverse_SSH_Tunneling Issue я имею, когда я бегу сценарий tunneling.sh: а = ( `пс -ef | Grep 19999 | Grep -v grep`), если [! "$ А"]; то SSH -fN -R 19999: локальный: 22 @ фи я получаю эту ошибку: tunnels.sh 1: tunnels.sh: Синтаксическая ошибка: «(» неожиданный Я крайний новичок обстреливать скрипты в Linux, так пожалуйста, будьте добры.
Richard
1

голосов
1

ответ
806

Просмотры

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

Я совсем застрял; Мне нужно, чтобы сжать содержимое папки, где у меня есть несколько файлов (расширение .dat). Я пошел для сценариев оболочки. До сих пор я говорил себе, что это не так уж трудно: мне просто нужно рекурсивно прочитать содержимое директории, получить имя файла и пронестись его, используя имя самого файла. Это то, что я писал: для I в * .dat; сделать почтовый $ я «.zip» $ я; сделано Теперь, когда я пытаюсь это я получаю странное поведение: каждый файл называется как «12/23/2012 data102 test1.dat»; и когда я запускать эту последовательность команд; Я вижу, что почтовый индекс вместо признания имени целого файла, см каждой части строки как единое целое, в результате чего вся операции на провал. Я сказал себе, что я делаю что-то неправильно, и что переменная я был неправ; поэтому я заменил эхо, вместо того, чем команда почтового индекса (чтобы видеть, какой был выход переменной I); а выход $ я это полное имя файла, а не его часть. Я совершенно невежественны в этот момент о том, что происходит ... если переменная я считывается пронестись он читает каждую одиночную часть строки, а все это, в то время как, если я использую эхо, чтобы увидеть содержимое этой переменной он получает правильный выход. Должна ли я передать значение имени файла на молнию по-другому? Так как содержание переменной, переданной в качестве параметра, я предполагал, что это не будет иметь значения, если строка одна или имеет пробелы в нем, и я не могу найти в справочной странице ответ (если есть в наличии ). Любой знает, почему я получаю такое поведение и как это исправить? Спасибо! Я совершенно невежественны в этот момент о том, что происходит ... если переменная я считывается пронестись он читает каждую одиночную часть строки, а все это, в то время как, если я использую эхо, чтобы увидеть содержимое этой переменной он получает правильный выход. Должна ли я передать значение имени файла на молнию по-другому? Так как содержание переменной, переданной в качестве параметра, я предполагал, что это не будет иметь значения, если строка одна или имеет пробелы в нем, и я не могу найти в справочной странице ответ (если есть в наличии ). Любой знает, почему я получаю такое поведение и как это исправить? Спасибо! Я совершенно невежественны в этот момент о том, что происходит ... если переменная я считывается пронестись он читает каждую одиночную часть строки, а все это, в то время как, если я использую эхо, чтобы увидеть содержимое этой переменной он получает правильный выход. Должна ли я передать значение имени файла на молнию по-другому? Так как содержание переменной, переданной в качестве параметра, я предполагал, что это не будет иметь значения, если строка одна или имеет пробелы в нем, и я не могу найти в справочной странице ответ (если есть в наличии ). Любой знает, почему я получаю такое поведение и как это исправить? Спасибо! Должна ли я передать значение имени файла на молнию по-другому? Так как содержание переменной, переданной в качестве параметра, я предполагал, что это не будет иметь значения, если строка одна или имеет пробелы в нем, и я не могу найти в справочной странице ответ (если есть в наличии ). Любой знает, почему я получаю такое поведение и как это исправить? Спасибо! Должна ли я передать значение имени файла на молнию по-другому? Так как содержание переменной, переданной в качестве параметра, я предполагал, что это не будет иметь значения, если строка одна или имеет пробелы в нем, и я не могу найти в справочной странице ответ (если есть в наличии ). Любой знает, почему я получаю такое поведение и как это исправить? Спасибо!
1

голосов
1

ответ
591

Просмотры

скрипт, чтобы передать вчерашние логах на FTP-сервер

Я пытаюсь написать скрипт, который будет запускаться каждый день и передачи вчерашних логов с нескольких серверов на FTP-сервер. До сих пор мне удалось скопировать их и переименовать их в соответствии с соглашением об именах (должен иметь ГГГГММДД в ​​ней) в другой каталог, но не на FTP. Вот что у меня до сих пор: #! / Bin / ш путь = / дом / Журнал / BackUpPath = / дом / new_directory / войти, если [! -d $ BackUpPath]; затем эхо «$ BackUpPath не существует Создайте его.» MKDIR $ BackUpPath фи; Сервер = $ (uname -n) для файла в $ пути / * строка *; делать метки время = $ (дата -d "$ (стат -c% у "$ имя_файла")" +% Y% м% d) = $ базовых ($ имя_файл базового) newfilename = $ (эхо "$ базовые" | СЕПГ s / доступ / доступ _ "$ временная метка" _ "$ сервер" / г) ф $ имя_файла $ BackUpPath "/ $ newfilename" эхо "
julien
1

голосов
2

ответ
1.3k

Просмотры

Bash скрипт, чтобы перезапустить приложение [закрытыми]

Можете ли вы помочь мне создать Баш (или ш) скрипт, который будет запускать приложение (./newserver) и каждый час будет убивать это приложение (послать сигнал) и начать заново. Кроме того, следует проверить, работает ли приложение, а если нет - рестарт, за исключением случаев, когда происходит сбой приложения и т.д. Для Linux Ubuntu
Breakdown
1

голосов
1

ответ
120

Просмотры

Синтаксическая ошибка при использовании мультипликатора для петель в сценарии оболочек

Я хочу, чтобы выполнить следующее упражнение в Linux. Impute2 является командной строки программного обеспечения на основе. Я хочу, чтобы автоматически изменить его параметры, используя для петель, но его следующей ошибки метания в ** полужирный **. -INT опция диапазоне с указанием от ** $ int1 до $ int2 ** для каждого ** $ куске **. Это означает, что здесь кусок 34 ИНТ будет от 165752599 до 170752599 (разность 5000001) и для фрагмента 35 INT будет 170752600 на 175752600 и так далее до последнего куска, т.е. кусок 49 и его междунар будет 240752614 на 245752614. для фрагмента в $ (сл 34 49) для int1 в $ (сл 165752599 5000001 240752614) для int2 в $ (сл 170752599 5000001 245752614) сделать ./impute2 -use_prephased_g -m map.txt -h hap.txt -l legend.txt \ -known_haps_g knownhap.
Ismeet Kaur
1

голосов
1

ответ
3.7k

Просмотры

Понимание сП в сценарии оболочки

ф $ {skeleton_dir} / *. CFG $ {skeleton_dir} / *. орг ./ Я не понимаю, что это значит, но у меня есть предположение на основе поведения программы. Она копирует .cfg файлы в текущей директории, но что делает * .org ./ делать? Я хочу изменить эту строку, чтобы скопировать * .spop файлы. Будет ли это изменение сделать трюк? (Это трудно проверить это легко, как оборотное время на моей машине в день) ф $ {skeleton_dir} / *. CFG $ {skeleton_dir} / *. Орг ./ ф $ {skeleton_dir} / *. SPOP $ {skeleton_dir } / * орг ./ Извините за глупые вопросы., но я не знаю много об этом, и это трудно Google для «./». В будущем, как бы я искать для различных вариаций, используемых командой сП (это «./»). Я знаю о «людях ххх» сейчас, и я читал «человек ф», но ничего не было там о «./»
SwimBikeRun
1

голосов
1

ответ
1.2k

Просмотры

Изменить HTML-файл в .sh сценарии

У меня есть статический HTML-файл в «Docs / index.html» с ~ 200 строк кода. Мне нужно добавить HTML-теги к нему в 2-х местах с .sh сценария. Я знаю, что есть команда СЭД для редактирования файлов, но не могу понять, как она используется. Мне нужно добавить передний конец документации до или добавить свой тег в конце строки 137 и, конечно, сохранить файл после этого :) И такой же тег в другом месте. Можете ли вы дать мне пример о том, как с этими конкретными строками коды для вставки? Спасибо
Feanor
1

голосов
1

ответ
1.9k

Просмотры

Перенаправление STDOUT и STDERR в Shell скрипт

У меня есть сценарий, который использует EXEC команду для перенаправления STDOUT и STDERR в файл. Сценарий прекрасно работает под Solaris 9. Я проверяю его на Solaris 10 на VMware и он терпит неудачу в ехесе команды. прог = `$ 0` базовое имя журнала = "$ {LOCLOG} / $ {прог} $$" Если проверка -z "$ LDDEBUG", то Exec> $ {} войти 2> & 1 CHMOD 644 "$ {} лог" еще набор - х фи В приведенном выше, сценарий заканчивается прямо на этой линии без каких-либо сообщение об ошибке. Я добавил кавычки переменной Exec> "$ {} войти" 2> & 1. Это позволило сценарий запуска до конца, но это не создает файл журнала. Затем я попробовал это путь к файлу: EXEC> / TMP / blahblah1 2> & 1 ... и это сработало. Он создал файл и написал к нему. Но это не решает мою проблему, так как журнал файл должен быть сформирован в сценарии. Я теряюсь для решения здесь, и я знаю, что это, вероятно, очень простой, но я не могу думать ни о чем другом, чтобы обойтись без того, чтобы делать какие-либо серьезные изменения в сценарий. ====== Выход ш -х ЛД-тест @ лунно-ТСТ [60] ш -х / дома / Хамида / тест / местные / бен / qikload + / дома базового каталога / Хамида / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г лог% м% д = / главная / Hameed / тест / местные / и т.д. / журнал / 0508 / qikload2199 + тест -z + Exec === ==== Затем я удалил 2> & 1 и побежал ш -x и пошло прошел эту линию. + Базовое имя / главная / Hameed / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г% м% д лог = / главная / Hameed / тест / местные / и т.д. / войти / 0508 / qikload27213 + тестовый -z + + Exec CHMOD 644 / главная / Hameed / тестовый / локальный / и т.д. / журнал / 0508 / qikload27213 + дата +% H:% M:% S Теперь = 10: 44: 23 + эхо Войти: 10:44:23 начинающихся грузы т думать ни о чем другом, чтобы обойтись без того, чтобы делать какие-либо серьезные изменения в сценарий. ====== Выход ш -х ЛД-тест @ лунно-ТСТ [60] ш -х / дома / Хамида / тест / местные / бен / qikload + / дома базового каталога / Хамида / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г лог% м% д = / главная / Hameed / тест / местные / и т.д. / журнал / 0508 / qikload2199 + тест -z + Exec === ==== Затем я удалил 2> & 1 и побежал ш -x и пошло прошел эту линию. + Базовое имя / главная / Hameed / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г% м% д лог = / главная / Hameed / тест / местные / и т.д. / войти / 0508 / qikload27213 + тестовый -z + + Exec CHMOD 644 / главная / Hameed / тестовый / локальный / и т.д. / журнал / 0508 / qikload27213 + дата +% H:% M:% S Теперь = 10: 44: 23 + эхо Войти: 10:44:23 начинающихся грузы т думать ни о чем другом, чтобы обойтись без того, чтобы делать какие-либо серьезные изменения в сценарий. ====== Выход ш -х ЛД-тест @ лунно-ТСТ [60] ш -х / дома / Хамида / тест / местные / бен / qikload + / дома базового каталога / Хамида / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г лог% м% д = / главная / Hameed / тест / местные / и т.д. / журнал / 0508 / qikload2199 + тест -z + Exec === ==== Затем я удалил 2> & 1 и побежал ш -x и пошло прошел эту линию. + Базовое имя / главная / Hameed / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г% м% д лог = / главная / Hameed / тест / местные / и т.д. / войти / 0508 / qikload27213 + тестовый -z + + Exec CHMOD 644 / главная / Hameed / тестовый / локальный / и т.д. / журнал / 0508 / qikload27213 + дата +% H:% M:% S Теперь = 10: 44: 23 + эхо Войти: 10:44:23 начинающихся грузы ====== Выход ш -х ЛД-тест @ лунно-ТСТ [60] ш -х / дома / Хамида / тест / местные / бен / qikload + / дома базового каталога / Хамида / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г лог% м% д = / главная / Hameed / тест / местные / и т.д. / журнал / 0508 / qikload2199 + тест -z + Exec === ==== Затем я удалил 2> & 1 и побежал ш -x и пошло прошел эту линию. + Базовое имя / главная / Hameed / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г% м% д лог = / главная / Hameed / тест / местные / и т.д. / войти / 0508 / qikload27213 + тестовый -z + + Exec CHMOD 644 / главная / Hameed / тестовый / локальный / и т.д. / журнал / 0508 / qikload27213 + дата +% H:% M:% S Теперь = 10: 44: 23 + эхо Войти: 10:44:23 начинающихся грузы ====== Выход ш -х ЛД-тест @ лунно-ТСТ [60] ш -х / дома / Хамида / тест / местные / бен / qikload + / дома базового каталога / Хамида / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г лог% м% д = / главная / Hameed / тест / местные / и т.д. / журнал / 0508 / qikload2199 + тест -z + Exec === ==== Затем я удалил 2> & 1 и побежал ш -x и пошло прошел эту линию. + Базовое имя / главная / Hameed / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г% м% д лог = / главная / Hameed / тест / местные / и т.д. / войти / 0508 / qikload27213 + тестовый -z + + Exec CHMOD 644 / главная / Hameed / тестовый / локальный / и т.д. / журнал / 0508 / qikload27213 + дата +% H:% M:% S Теперь = 10: 44: 23 + эхо Войти: 10:44:23 начинающихся грузы 1 и побежал ш -x и пошли прошли эту линию. + Базовое имя / главная / Hameed / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г% м% д лог = / главная / Hameed / тест / местные / и т.д. / войти / 0508 / qikload27213 + тестовый -z + + Exec CHMOD 644 / главная / Hameed / тестовый / локальный / и т.д. / журнал / 0508 / qikload27213 + дата +% H:% M:% S Теперь = 10: 44: 23 + эхо Войти: 10:44:23 начинающихся грузы 1 и побежал ш -x и пошли прошли эту линию. + Базовое имя / главная / Hameed / тест / местные / бен / qikload прог = qikload datefmt = +% H:% M:% S dayfmt = +% г% м% д лог = / главная / Hameed / тест / местные / и т.д. / войти / 0508 / qikload27213 + тестовый -z + + Exec CHMOD 644 / главная / Hameed / тестовый / локальный / и т.д. / журнал / 0508 / qikload27213 + дата +% H:% M:% S Теперь = 10: 44: 23 + эхо Войти: 10:44:23 начинающихся грузы
Hameed
1

голосов
1

ответ
112

Просмотры

Python Do Хотя функции SH

Мне нужно запустить сценарий питона в то время файл ш называется и в течение всего времени этот процесс запущен. в основном это питон вертушка во время импорта установки времени SYS импорта делать Защиту Spinn (): печать "обработка ... \\", Симс = [ '\\', '|', '/', '-'] бс = '\ Ъ' для _ в диапазоне (10): для Sym в Syms: sys.stdout.write ( "\ B% S" % SYM) sys.stdout.flush () time.sleep (0,1) SPINN () в то время защиту установки (): импорт подпроцесс subprocess.call ([ "Sudo ш", "installer.sh"], оболочки = True) установка () есть ли способ, чтобы это на Python?
Kerönas
1

голосов
1

ответ
1.1k

Просмотры

Bourne Shell: Используя переменную среды, содержащую строку с пробелами в качестве параметра для внешнего exectuables - это возможно?

Это общий вопрос, так как «проблема» возникла несколько раз, и я никогда не был в состоянии получить вокруг него, и мне интересно, если это на самом деле просто не представляется возможным. Речь идет о Bourne скриптов (не Bash) и можно ли использовать переменные окружения, значения которых содержат строки, которые содержат пробелы. Поэтому рассмотрим простой случай, чтобы проиллюстрировать этот вопрос - #! Параметры / бен / ш = «- Т„XXX YYY ZZZ“» / USR / бен / Xterm $ {параметры} выход 0 При выполнении сценария, внутренние кавычки интерпретируются как символы, а не как разделители строк. ш -х тест + параметры = -T "XXX YYY ZZZ" + / USR / бен / Xterm -T "XXX YYY" / USR / бен / Xterm: Нет абсолютный путь найден для оболочки: YYY "Xterm видит -T" XXX в качестве параметра заголовка и YYY» в качестве следующего параметра, для которого оболочка для использования. Я попытался изменить порядок вложенности цитат, обратные косые черты, даже удаление кавычек и только с помощью обратных косых черт на пространствах, а именно ш -х тесты + параметры = -T XXX \ YYY + / USR / бен / Xterm -T XXX \ YYY \ / USR / бен / Xterm: Нет абсолютный путь найден для оболочки: YYY \ но ничего не работает. Если строка заголовка не содержит пробел, то нет никаких проблем, например, #! Параметры / бен / ш = «- Т„the_title“» / USR / бен / Xterm $ {Параметры} Одна из причин, я хотел бы получить эту работу, если это возможно, чтобы использовать переменную в качестве параметра функции сценария оболочки, в противном случае это будет означать несколько параметров. В данном случае это будет означать, один для флага командной строки (-t) и один для значения параметра командной строки (заголовок строки).
J G Miller
1

голосов
2

ответ
5.8k

Просмотры

Прочитайте файл из динамического расположения файла с использованием Talend

Я использую Talend Studio, для интеграции данных v5.3.1. В том, что я создал работу для fileDelimited. Я загрузил файл CSV и читает файл. Я экспортировал работу как Zip файл, извлеченный, и я запустить файл ш в терминале. И это было чтение файла и его отображение в консоли. Теперь я хочу, чтобы прочитать другой файл в каком-нибудь другом месте файла. можно ли читать другой файл, запустив тот же скрипт? Если да, то где я должен изменить?
Shiju K Babu
1

голосов
2

ответ
145

Просмотры

server.sh: 2:.: properties.conf: не найдены

У меня есть server.sh файл работает мой RMI сервер выглядит как: #! / Bin / Баш. properties.conf SERVER_JAR = SomeRMI-server.jar Java -Djava.rmi.server.codebase = $ {publicPath} -jar $ SERVER_JAR properties.conf находится в том же месте, server.sh, но когда я бегу .sh файл, который я получил: server.sh: 2:.: properties.conf: не найдена ошибка, как исправить это?
akuzma
1

голосов
1

ответ
168

Просмотры

Bash автоматическое приращение в операции

Пожалуйста, объясните эту проблему с приращением значения, мы имеем следующий файл с именем test.sh # / бен / Баш пс Окс! | Grep test.sh -c эхо $ (пс Окс | Grep test.sh -с), а затем запустить его $ ./test.sh 2 3 Я знаю, что есть две строки после среза Grep (1 с test.sh, 2 с Grep ), почему 3 бывают? Спасибо
IvanM
1

голосов
1

ответ
850

Просмотры

Как вызвать скрипт из Python в Windows Powershell?

Я с помощью сценария Python называть .sh сценарий, как показано ниже RET = subprocess.call ( 'ш ./myScript.sh '+ file_a +' '+ file_b +'' ул (self.counter +), оболочки = True) первые две строки myScript.sh являются #! / bin / Баш эхо «ш скрипт открыл» Я могу запустить myScript.sh непосредственно из Windows Powershell, но не из моего сценария Python (запустить в Powershell). Так, я знаю, что myScript.sh правильно; Однако, я не получаю выход при запуске из моего Python скрипта на другой компьютер, этот вызов работал нормально, но теперь это не так. Какие-либо предложения?
user2860233
1

голосов
1

ответ
171

Просмотры

Grep не работает в сценарии

У меня есть очень простой сценарий, который я пытаюсь сделать команду Grep в Баш скрипт. Он работает в командной строке, но не в сценарии. Я бы очень признателен за помощь. #! / Bin / ш эхо "Тест 2"; Grep 14784 журналов / ftp_log.13-10-29> Тест Это называется со страницы PHP, он печатает «тест 2», но не делает Grep и создать тестовый файл, однако, когда я запустить его из командной строки она делает без проблем. Любая помощь вы могли бы дать будут оценены. Спасибо, Дэйв
cycloxr

Просмотр дополнительных вопросов

Связанные вопросы