Вопросы с тегом «bash»

Для вопросов о скриптах, написанных для командной оболочки Bash. Для сценариев оболочки с ошибками / синтаксическими ошибками, пожалуйста, проверьте их с помощью программы shellcheck (или на сервере веб-проверки оболочки по адресу https://shellcheck.net) перед размещением здесь. Вопросы об интерактивном использовании Bash, скорее всего, будут касаться темы Super User, а не переполнения стека.

30
Как получить исходный каталог скрипта Bash из самого скрипта
Как мне получить путь к каталогу, в котором находится скрипт Bash , внутри этого скрипта? Я хочу использовать скрипт Bash в качестве средства запуска для другого приложения. Я хочу изменить рабочий каталог на тот, где находится скрипт Bash, чтобы я мог работать с файлами в этом каталоге, например так: $ …
4957 bash  directory 


20
Как мне узнать, что обычный файл не существует в Bash?
Я использовал следующий скрипт, чтобы увидеть, существует ли файл: #!/bin/bash FILE=$1 if [ -f $FILE ]; then echo "File $FILE exists." else echo "File $FILE does not exist." fi Какой правильный синтаксис использовать, если я только хочу проверить, не существует ли файл ? #!/bin/bash FILE=$1 if [ $FILE does not …
3268 bash  file-io  scripting 


26
Как проверить, содержит ли строка подстроку в Bash
У меня есть строка в Bash: string="My string" Как я могу проверить, содержит ли она другую строку? if [ $string ?? 'foo' ]; then echo "It's there!" fi Где ??мой неизвестный оператор. Я использую эхо и grep? if echo "$string" | grep 'foo'; then echo "It's there!" fi Это выглядит …
2576 string  bash  shell  substring  sh 


17
Что означает «2> & 1» в оболочке?
В оболочке Unix, если я хочу объединить stderrи stdoutв stdoutпоток для дальнейших манипуляций, я могу добавить следующее в конце моей команды: 2>&1 Итак, если я хочу использовать headна выходе из g++, я могу сделать что-то вроде этого: g++ lots_of_errors 2>&1 | head поэтому я вижу только первые несколько ошибок. У …
2285 bash  shell  unix  redirect 


30
Извлечь имя файла и расширение в Bash
Я хочу получить имя файла (без расширения) и расширение отдельно. Лучшее решение, которое я нашел, это: NAME=`echo "$FILE" | cut -d'.' -f1` EXTENSION=`echo "$FILE" | cut -d'.' -f2` Это неправильно, потому что не работает, если имя файла содержит несколько .символов. Если, скажем, у меня есть a.b.js, он будет рассматривать aи …
2114 bash  string  filenames 

30
Как разделить строку на разделитель в Bash?
У меня есть эта строка хранится в переменной: IN="bla@some.com;john@home.com" Теперь я хотел бы разделить строки по ;разделителю, чтобы у меня было: ADDR1="bla@some.com" ADDR2="john@home.com" Я не обязательно нужен ADDR1и ADDR2переменные. Если они являются элементами массива, это даже лучше. После предложений из ответов, приведенных ниже, я получил следующее: #!/usr/bin/env bash IN="bla@some.com;john@home.com" mails=$(echo …
2044 bash  shell  split  scripting 

30
Как мне разобрать аргументы командной строки в Bash?
Скажем, у меня есть скрипт, который вызывается с этой строкой: ./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile или этот: ./myscript -v -f -d -o /fizz/someOtherFile ./foo/bar/someFile Что общепринятый способ разбора это таким образом, что в каждом конкретном случае (или некоторая комбинация из двух) $v, $fи $dвсе будет установлен trueи $outFileбудет равно /fizz/someOtherFile?


14
Как установить переменную для вывода команды в Bash?
У меня есть довольно простой скрипт, который выглядит примерно так: #!/bin/bash VAR1="$1" MOREF='sudo run command against $VAR1 | grep name | cut -c7-' echo $MOREF Когда я запускаю этот скрипт из командной строки и передаю ему аргументы, я не получаю никакого вывода. Однако, когда я запускаю команды, содержащиеся в $MOREFпеременной, …
1680 bash  shell  command-line 


30
Как посчитать все строки кода в каталоге рекурсивно?
У нас есть приложение PHP, и мы хотим подсчитать все строки кода в определенном каталоге и его подкаталогах. Нам не нужно игнорировать комментарии, так как мы просто пытаемся получить грубое представление. wc -l *.php Эта команда прекрасно работает в данном каталоге, но игнорирует подкаталоги. Я думал, что это может сработать, …
1625 bash  shell 

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