🛠️ Что означает $@ в shell скрипте?
Если ты когда-либо задавался вопросом, что такое
то
Когда внутри
каждый параметр будет передан в
Пример использования:
Если ты вызовешь:
то
Использование
🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Если ты когда-либо задавался вопросом, что такое
$@
в shell скрипте, то сегодня мы разберем эту загадку и покажем, как использовать его для передачи параметров.$@
представляет собой все параметры, переданные скрипту. Например, если ты вызовешь скрипт так:./someScript.sh foo bar
то
$@
будет равно foo bar
.Когда внутри
someScript.sh
ты используешь:umbrella_corp_options "$@"
каждый параметр будет передан в
umbrella_corp_options
в двойных кавычках. Это позволяет передавать параметры с пробелами, как единое целое.Пример использования:
Если ты вызовешь:
./someScript.sh foo bar "boo far"
то
$@
в двойных кавычках будет содержать три аргумента: "foo"
, "bar"
и "boo far"
.Использование
$@
в shell скриптах позволяет легко и безопасно передавать параметры, включая те, которые содержат пробелы. Попробуй сам и убедись, насколько это удобно!🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Stack Overflow
What does $@ mean in a shell script?
What does a dollar sign followed by an at-sign (@) mean in a shell script?
For example:
umbrella_corp_options $@
For example:
umbrella_corp_options $@
👍17🔥2
🧠 Нужно ли ставить кавычки вокруг переменных в shell-скриптах?
Привет, повелитель терминала! Если ты в скриптах пишешь
Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
2. Есть пробелы:
3. В переменной спецсимволы (
---
### Пример бага:
---
### Когда кавычки можно опустить:
-
- Внутри арифметических или логических выражений:
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Привет, повелитель терминала! Если ты в скриптах пишешь
$var
без кавычек — скорее всего, ты (пока что) просто везучий. Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
[ "$var" = "value" ]
2. Есть пробелы:
xdg-open "$URL"
3. В переменной спецсимволы (
*
, &
, ?
): wget "$link"
---
### Пример бага:
file="My documents/report.pdf"
rm $file # ❌ Попытка удалить два файла: 'My' и 'documents/report.pdf'
rm "$file" # ✅ Удаляется нужный файл
---
### Когда кавычки можно опустить:
-
$?
, $#
, $0
— безопасны без кавычек.- Внутри арифметических или логических выражений:
if [ "$?" -eq 0 ]; then ...
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Stack Overflow
When to wrap quotes around a shell variable?
Should or should I not wrap quotes around variables in a shell script?
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
👍13
🚀 Как работает
Привет, архитектор переменных и властелин скриптов! Задумывался, зачем вообще нужен
🧠 Что делает
Когда ты пишешь:
ты говоришь bash: “Эй, сделай эту переменную доступной для всех дочерних процессов.”
Например, твой скрипт вызывает
🤔 А если без
Вот так:
Переменная будет доступна только внутри текущего shell, но не в дочерних процессах.
Однако есть лайфхак:
Так переменная временно экспортируется только для выполнения
⚠️ Важное ограничение
Экспорт работает вниз по процессу, но не вверх.
Если ты экспортируешь переменную в скрипте, родительский терминал её не увидит.
🛠 Вывод
Хочешь, чтобы переменная работала в дочерних процессах? Используй
Пишешь скрипт с вызовом других программ? Без
Но если переменная нужна только внутри текущего скрипта — не трать лишние байты.
🌳 Ветка: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export
📩 Завтра: Прокачай свой namei: секретная опция для идеального вывода!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
🧠 - Отключи ненужные конфиги в Apache за пару команд!
🧠 - Контролируй трафик в реальном времени! Три утилиты для мониторинга сети в Linux
#stackoverflow @LinuxSkill #Linux #ShellScripting #Export #SysAdmin #DevOps
export
в bash и когда он реально нужен?Привет, архитектор переменных и властелин скриптов! Задумывался, зачем вообще нужен
export
в bash и что он делает с переменными? Сегодня разложим по полочкам — коротко, чётко и с пользой!🧠 Что делает
export
Когда ты пишешь:
export MY_VAR=value
ты говоришь bash: “Эй, сделай эту переменную доступной для всех дочерних процессов.”
Например, твой скрипт вызывает
python
, curl
, node
— они смогут использовать MY_VAR
.🤔 А если без
export
?Вот так:
MY_VAR=value
Переменная будет доступна только внутри текущего shell, но не в дочерних процессах.
Однако есть лайфхак:
MY_VAR=hello node script.js
Так переменная временно экспортируется только для выполнения
node script.js
. Удобно? Да!⚠️ Важное ограничение
Экспорт работает вниз по процессу, но не вверх.
Если ты экспортируешь переменную в скрипте, родительский терминал её не увидит.
🛠 Вывод
Хочешь, чтобы переменная работала в дочерних процессах? Используй
export
. Пишешь скрипт с вызовом других программ? Без
export
будет больно. Но если переменная нужна только внутри текущего скрипта — не трать лишние байты.
🌳 Ветка: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export
📩 Завтра: Прокачай свой namei: секретная опция для идеального вывода!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
🧠 - Отключи ненужные конфиги в Apache за пару команд!
🧠 - Контролируй трафик в реальном времени! Три утилиты для мониторинга сети в Linux
#stackoverflow @LinuxSkill #Linux #ShellScripting #Export #SysAdmin #DevOps
Stack Overflow
Defining a variable with or without export
What is export for?
What is the difference between:
export name=value
and
name=value
What is the difference between:
export name=value
and
name=value
👍18🔥1
🤔 Как запросить ввод Yes/No/Cancel в shell скрипте?
Хочешь сделать свои скрипты более интерактивными? Узнай, как легко запросить ввод от пользователя в Linux с помощью команд read и select.
Основная информация:
1. Использование команды read:
Команда read позволяет запрашивать ввод от пользователя. Вот пример, как это сделать:
Этот скрипт будет повторять запрос, пока пользователь не введет "yes" или "no".
2. Использование команды select:
select упрощает выбор, автоматически отображая доступные варианты:
Здесь пользователь выбирает номер, соответствующий его выбору.
3. Локализация ввода:
Для поддержки разных языков можно использовать locale:
Используя команды read и select, ты можешь сделать свои скрипты более интерактивными и удобными для пользователей. Попробуй сам и убедись в их эффективности!
🌳 Ветка: https://stackoverflow.com/questions/226703/how-do-i-prompt-for-yes-no-cancel-input-in-a-linux-shell-script
📩 Завтра: Топ команды для DevOps: Что спрашивают на собеседованиях
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Секреты массового управления пользователями и группами в Linux
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах
#stackoverflow @LinuxSkill #Linux #ShellScripting #UserInput #SysAdmin #DevOps
Хочешь сделать свои скрипты более интерактивными? Узнай, как легко запросить ввод от пользователя в Linux с помощью команд read и select.
Основная информация:
1. Использование команды read:
Команда read позволяет запрашивать ввод от пользователя. Вот пример, как это сделать:
while true; do
read -p "Do you wish to install this program? " yn
case $yn in
[Yy]* ) make install; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
Этот скрипт будет повторять запрос, пока пользователь не введет "yes" или "no".
2. Использование команды select:
select упрощает выбор, автоматически отображая доступные варианты:
echo "Do you wish to install this program?"
select yn in "Yes" "No"; do
case $yn in
Yes ) make install; break;;
No ) exit;;
esac
done
Здесь пользователь выбирает номер, соответствующий его выбору.
3. Локализация ввода:
Для поддержки разных языков можно использовать locale:
set -- $(locale LC_MESSAGES)
yesexpr="$1"; noexpr="$2"; yesword="$3"; noword="$4"
while true; do
read -p "Install (${yesword} / ${noword})? " yn
if [[ "$yn" =~ $yesexpr ]]; then make install; exit; fi
if [[ "$yn" =~ $noexpr ]]; then exit; fi
echo "Answer ${yesword} / ${noword}."
done
Используя команды read и select, ты можешь сделать свои скрипты более интерактивными и удобными для пользователей. Попробуй сам и убедись в их эффективности!
🌳 Ветка: https://stackoverflow.com/questions/226703/how-do-i-prompt-for-yes-no-cancel-input-in-a-linux-shell-script
📩 Завтра: Топ команды для DevOps: Что спрашивают на собеседованиях
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Секреты массового управления пользователями и группами в Linux
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах
#stackoverflow @LinuxSkill #Linux #ShellScripting #UserInput #SysAdmin #DevOps
Stack Overflow
How do I prompt for Yes/No/Cancel input in a Linux shell script?
I want to pause input in a shell script, and prompt the user for choices.
The standard Yes, No, or Cancel type question.
How do I accomplish this in a typical bash prompt?
The standard Yes, No, or Cancel type question.
How do I accomplish this in a typical bash prompt?
👍15