Вопросы с тегом «shell-script»

Вопросы о сценариях оболочки, исполняемых файлах, которые интерпретируются оболочкой (bash, zsh и т. Д.).

4
Как остановить запуск скрипта, если он не root (и вывести «Не запускается как root! Выход ...»)
Вот мой источник: #!/bin/bash echo "Running script to free general cached memory!" echo ""; echo "Script must be run as root!"; echo ""; echo "Clearing swap!"; swapoff -a && swapon -a; echo ""; echo "Clear inodes and page file!"; echo 1 > /proc/sys/vm/drop_caches; echo ""; Он очищает кеши и прочее …


2
Как получить имя пользователя, который выполнил скрипт bash, как sudo?
Я хочу создать bash-скрипт, который должен выполняться с помощью sudo, но должен учитывать имя пользователя не-sudo, который его выполнил. Так что, если пользователь bobзапускает, sudo ./myscript.shя хотел бы myscript.shзнать, кто bobбыл его исполнителем. Давайте посмотрим внутрь myscript.sh: USER=$(whoami) # Do something that takes into account the username. Как я могу …

4
Предложить пользователю войти в систему как root при запуске сценария оболочки
Проблема, которую я получаю, когда я ввожу команду, su - root в начале моего файла сценария оболочки он предлагает пользователю ввести пароль, а затем НЕ переходит к остальной части сценария оболочки. Затем я должен вручную найти и запустить скрипт оболочки через терминал. Я хочу, чтобы скрипт проверял, чтобы пользователь вошел …

3
Добавление столбца значений в файл с разделителями табуляции
Как я могу добавить столбец значений в файл, который имеет определенное количество строк. У меня есть входной файл, как это: Входной файл: SPATA17 1 217947738 LYPLAL1 1 219383905 FAM47E 4 77192838 SHROOM3 4 77660162 SHROOM3 4 77660731 SHROOM3 4 77662248 Выходной файл: SPATA17 1 217947738 file1 LYPLAL1 1 219383905 file1 …

2
Извлечение строки в соответствии с шаблоном в bash-скрипте
В bash предположим, что у меня есть строка strname: strname="ph7go04325r" Я хотел бы извлечь символы между первым "3" и последним "r" символом strname, сохранив результат в виде строки strresult. В приведенном выше примере результатом strresultбудет: strresult="25" Первый "3"символ не обязательно находится в позиции строки 8 в strname; то же самое, …

1
Пара команд, связанных с арифметикой, Dash, POSIX shell, sh, Increment
При увеличении переменной до / после, в POSIX Shell, в чем разница между этими двумя примерами. Кажется, что они будут иметь те же последствия, но будут ли они использоваться по-другому? Когда бы вы предпочли одно другому? X=$((X+1)) : $((X=X+1))

3
Какой интерпретатор оболочки запускает скрипт без шебанга?
Предположим, что оболочкой по умолчанию для моей учетной записи является zsh, но я открыл терминал, запустил bash и выполнил скрипт с именем prac002.sh, какой интерпретатор оболочки будет использоваться для выполнения сценария, zsh или bash? Рассмотрим следующий пример: papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep papagolf [sudo] password …

4
Как я могу использовать переменную как условие случая?
Я пытаюсь использовать переменную, состоящую из разных строк, разделенных с помощью |в качестве caseпроверки операторов. Например: string="\"foo\"|\"bar\"" read choice case $choice in $string) echo "You chose $choice";; *) echo "Bad choice!";; esac Я хочу иметь возможность набрать fooили barвыполнить первую часть caseзаявления. Впрочем, и то, fooи другое barменя возьмут $ …

1
удалить строки, где значение поля меньше или равно 3 - sed или awk?
Мне нужно удалить каждую строку, которая имеет значение 2 или менее в 8-м поле (столбец). Мои данные выглядят так: 12-31 Airport 189 379 41 49.70946503 -124.91377258 2 2880 30.8 01-01 AlberniElementary 165 331 16 49.26100922 -124.80662537 4 5760 26.1 01-09 BamfieldMarine 161 323 23 48.83490372 -125.13572693 2 2875 27.4 01-10 …
17 shell  shell-script  sed  awk  grep 

5
Пройдите по всем подкаталогам и сделайте что-нибудь в сценарии оболочки Unix
Я хочу, чтобы мой сценарий оболочки посещал все подкаталоги в главном каталоге. Сделайте что-нибудь в каталогах, отправьте вывод в буферный файл и перейдите к следующему каталогу. Рассмотрим Main Dir = / tmp Sub Dir = ABCD (четыре подкаталога)

2
Как установить глобальные переменные среды при загрузке через скрипт и сделать их доступными для приложения, которое запускается до входа в систему?
У меня есть служба, которая запускается при загрузке, и в этой службе она вызывает фоновый скрипт bash, который экспортирует некоторые переменные среды. У меня проблема в том, что эти переменные среды не отправляются родителю фонового процесса, поэтому, как только мой скрипт завершит выполнение, они исчезнут. Кроме того, после запуска скрипта …

4
Как мне работать с переключателями в сценарии оболочки?
Существуют ли какие-либо встроенные инструменты, которые распознают -xи --xxxxкак переключатели, а не аргументы, или вам нужно пройти через все входные переменные, проверить на наличие тире, а затем проанализировать аргументы?

4
Как заменить пробелы во всех именах файлов подчеркиванием в Linux с помощью сценария оболочки?
Я попытался следующий сценарий оболочки, который должен заменить пробелы из всех имен файлов XML for xml_file in $(find $1 -name "* .xml" -type f); do echo "removing spaces from XML file:" $xml_file mv "$xml_file" "${xml_file// /_}"; done Предположим, у меня есть XML-файл с именем xy z.xml, тогда он дает: removing …

4
Как открыть терминал, разделить на 9 терминалов и переключаться между ними одним скриптом?
Я хотел бы открыть терминал, разделить его, скажем, на 9 частей (3х3) и выполнить некоторый скрипт bash. Но для каждой терминальной части свой скрипт. Это можно сделать с помощью Perl, Python или даже Bash? Как я могу переключаться между этими маленькими терминалами, не используя сочетания клавиш? О, кстати, я использую …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.