Articles of shell

Работают ли функции bash в текущей оболочке или подоболочке?

У меня есть открытый терминал, и я вызываю функцию bash: change_path где: change_path(){ export PATH=”foobar:$PATH”; } Будет ли change_path всегда работать в текущей оболочке и всегда будет изменять $ PATH текущей оболочки? Пока что в моем тестировании это, кажется, имеет место, но трудно сказать наверняка.

загружаться нормально даже с бесконечным циклом в /etc/rc.local

Я поместил скрипт Python с бесконечным циклом в /etc/rc.local но машина успешно загружается, что меня смущает. Содержание /etc/rc.local : #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will “exit 0” on success or any other # value on error. […]

Что произойдет, если я помещу #! / Bin / bash внутри скрипта, но использую ksh для скрипта?

Оператор shebang используется, чтобы указать, какая shell будет использоваться для запуска скрипта. что будет в следующем случае: #!/bin/bash если я введу ‘ksh script_name’, что произойдет?

вырезать только дату и время из заданной входной строки – входной строкой является Cpmplete sting, например 05-09-2018-10.13

вырезать только дату и время (т.е. 05-09-2018-10.13 ) из строки ниже /pi_nfs/pixin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05- 09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop completed. /pm_nfs/pmfin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05- 09-2018-23.00:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop completed. Я пробовал комбинацию ниже, но она возвращает меня Команда: zgrep -i “AppClusterMember stop completed” /pi_nfs/pixin/axpin zhgahh/was_logs/was_admin_logs/start_WPS.log.05-09-2018*|cut -d ‘.’ -f3 Выход: 05-09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop completed 05-09-2018-23.00:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop completed Ожидаемый результат: […]

Добавить stderr и stdout в файл

У меня есть это: npm install “$tgz_path” &>> “$HOME/.r2g/logs/r2g.log”; но это синтаксически неверно. Как добавить stdout + stderr в этот файл журнала?

Запустите команду оболочки в Python

Окружающая среда – PyCharm Я использую приведенную ниже команду, чтобы получить файл JSON: – aws rds describe-db-cluster-snapshots > snapshotdetails.json Я использую этот файл Json для извлечения некоторых данных. Я хочу, чтобы вышеуказанная команда запускалась из моего скрипта Python. Я пробовал ниже, но его провал: from subprocess import call call([“aws rds describe-db-cluster-snapshots > snapshotdetails.json”]) Я получаю […]

Команда с конвейером и redirectм

В каком порядке выполняются команды, имеющие redirect конвейера и выхода? Скажем, мы делаем следующее: Charles@myzone:/tmp$ mkdir /tmp/testdir Charles@myzone:/tmp$ cd /tmp/testdir Charles@myzone:/tmp/testdir$ touch file1 file2 Charles@myzone:/tmp/testdir$ ls | wc -l 2 Charles@myzone:/tmp/testdir$ ls | wc -l > ls_result Charles@myzone:/tmp/testdir$ cat ls_result 3 Я знаю, что если вы выполните ls > result то result будет содержать имя […]

Невозможно изменить LD_CONFIG_PATH из скрипта

Я пытаюсь написать скрипт, который добавляет некоторый путь к LD_CONFIG_PATH, чтобы не получить « blabla.so not found». Проблема в том, что мой скрипт может изменять свой собственный контекст (через экспорт), но он не влияет на другие оболочки. Я хочу установить переменную глобально, чтобы она сохранялась между перезагрузками и shellми. Мой текущий скрипт выглядит так: LDPATH=’/opt/mqm/lib64′ […]

Как вычесть два списка (быстро)?

Какой быстрый способ вычесть два списка 1 . Списки могут быть небольшими, может быть, прямой способ работы с оболочкой. Или списки могут быть длинными, возможно, внешние инструменты – более быстрый путь. Предположим, у вас есть два списка: list1=( 1 2 3 4 5 6 7 8 9 10 11 12 ) list2=( 1 2 3 […]

Понимание встроенных команд оболочки

В руководстве по bash написано, что Builtin commands are contained >>> within <<< the shell itself Кроме того, этот ответ гласит, что A built-in command is simply a command that the shell carries out itself, instead of interpreting it as a request to load and run some >>> other program <<< Когда я запускаю compgen […]