shell ×34
Создан 03.01.2025
36
голоса
5
ответов
24
просмотров
Как проверить, содержит ли строка подстроку в Bash

У меня есть строка в Bash:

string="My string"

Как я могу проверить, содержит ли она другую строку?

Я пробовал написать так:

if [ $string ?? 'foo' ]; then
  echo "It's there!"
fi

Где ?? — это мой неизвестный оператор. Использовать ли мне echo и grep?

if...
35
голоса
4
ответов
47
просмотров
Как объединить строковые переменные в Bash

На PHP строки объединяются следующим образом:

$foo = "Hello";
$foo .= " World";

В результате переменная $foo становится равной "Hello World".

Как можно достичь такого же результата в Bash?

32
голоса
5
ответов
23
просмотров
Что означает "2>&1"?

Я пытаюсь объединить потоки stderr и stdout в один поток stdout и применяю для этого следующий синтаксис к команде: 2>&1

Например, следующая команда позволяет мне увидеть несколько первых ошибок при компиляции файла main.cpp: g++ main.cpp 2>&1 | head

Но что именно означает...

24
голоса
4
ответов
16
просмотров
Как установить переменную на вывод команды в Bash?

У меня есть довольно простой скрипт, который выглядит примерно так:

#!/bin/bash

VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'

echo $MOREF

Когда я запускаю этот скрипт из командной строки и передаю ему аргументы, я не получаю никакого вывода. Однако, когда я...

24
голоса
4
ответов
19
просмотров
Как проверить, установленна ли переменная в Bash

Заголовок: Как узнать, установлена ли переменная в Bash?

Описание проблемы:

Мне нужно проверить, установлен ли параметр в функции Bash. Например, как можно проверить, передан ли первый параметр в функцию? Вот мой код:

function a {
    # как проверить, установлен ли $1?
}

Как мне...

23
голоса
5
ответов
27
просмотров
Как пройтись по массиву строк в Bash?

Я хочу написать скрипт, который будет проходить по 15 строкам (возможно, это массив?). Это возможно?

Что-то вроде этого:

for databaseName in listOfNames
then
  # Сделать что-то
end

Как это реализовать?

22
голоса
5
ответов
29
просмотров
Как перезагрузить настройки .bashrc без выхода и повторного входа в систему?

Я внес изменения в файл .bashrc, но не знаю, как применить их, не выходя из системы и не заходя обратно. Как можно перезагрузить .bashrc?

20
голоса
5
ответов
7
просмотров
Проверка существования входного аргумента в Bash-скрипте

Я пытаюсь проверить наличие входного аргумента в моем скрипте. У меня есть следующий код:

if [ "$1" -gt "-1" ]
then echo hi
fi

Однако я получаю следующую ошибку:

[: : integer expression expected

Как правильно проверить, существует ли входной аргумент перед его использованием?

20
голоса
5
ответов
10
просмотров
Как рекурсивно посчитать все строки кода в директории?

У нас есть приложение на PHP, и нам нужно посчитать все строки кода в определенном каталоге и его подкаталогах.

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

Команда wc -l *.php отлично работает для заданного каталога, но она...

19
голоса
5
ответов
11
просмотров
Как запросить ввод Yes/No/Cancel в скрипте оболочки Linux?

Я хочу приостановить ввод в скрипте оболочки и запросить у пользователя выбор. Мне нужно задать стандартный вопрос с вариантами «Да», «Нет» или «Отмена». Как мне это сделать в типичном bash-скрипте?

18
голоса
2
ответов
8
просмотров
Разница между sh и Bash

Разница между Bash и sh При написании скриптов для оболочки мы часто используем /bin/sh и /bin/bash. Обычно я предпочитаю bash, но не совсем понимаю, в чем между ними разница. Какова основная разница между Bash и sh? На что нам следует обратить внимание при программировании на Bash и sh?

18
голоса
5
ответов
18
просмотров
Как указать приватный SSH-ключ для выполнения команды shell в Git?

У меня возникла несколько необычная ситуация: я хочу указать приватный SSH-ключ, который будет использоваться при выполнении команды в оболочке (git) на локальном компьютере.

Скорее всего, это должно выглядеть так:

git clone [email protected]:TheUser/TheProject.git -key...
15
голоса
5
ответов
10
просмотров
Как объявить и использовать логические переменные в shell-скрипте?

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

variable=$false

variable=$true

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

15
голоса
5
ответов
10
просмотров
Формат даты YYYY-MM-DD в shell-скрипте

Я пытался использовать $(date) в своем скрипте на Bash, однако мне нужно, чтобы дата была в формате YYYY-MM-DD. Как мне это сделать?

14
голоса
5
ответов
13
просмотров
Назначение значений по умолчанию для переменных оболочки одной командой в bash

У меня есть множество тестов для переменных в скрипте на bash (3.00), где, если переменная не задана, то присваивается значение по умолчанию, например:

if [ -z "${VARIABLE}" ]; then 
    FOO='default'
else 
    FOO=${VARIABLE}
fi

Мне кажется, что существует какой-то синтаксис для...

14
голоса
5
ответов
11
просмотров
Замена одной подстроки на другую в shell-скрипте

У меня есть строка firstString = "I love Suzi and Marry", и я хочу заменить в ней "Suzi" на "Sara".

Вот код, который у меня есть:

firstString = "I love Suzi and Marry"
secondString = "Sara"

Я хочу получить следующий результат:

firstString = "I love Sara and...
14
голоса
5
ответов
10
просмотров
Запуск команд оболочки и захват вывода

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

Какой код мог бы это...

13
голоса
5
ответов
15
просмотров
Как выводить команды оболочки по мере их выполнения

Заголовок: Как в shell-скрипте вывести все выполняемые команды с расширением переменных?

Описание проблемы:

В своем shell-скрипте я хочу вывести все команды, которые выполняются, и автоматически расширять любые имена переменных.

Например, у меня есть следующая строка:

ls...
13
голоса
5
ответов
9
просмотров
Почему в первой строке Python-скрипта пишут "#!/usr/bin/env python"?

Я замечаю, что в начале файлов на Python часто можно увидеть такие строки:

#!/usr/bin/env python

или

#!/usr/bin/env python3

Мне кажется, что эти файлы выполняются одинаково, даже если этой строки нет. В чем смысл добавления такой строки в файл? Как она влияет на...

12
голоса
5
ответов
12
просмотров
Определение переменной с экспортом или без него

Вопрос: Каково назначение команды export в Bash?

Я хочу разобраться в назначении команды export в Bash. В чем разница между следующими двумя командами?

export name=value

и

name=value

Как они влияют на переменные окружения и область видимости?