Вопросы по теме 'dash-shell'
bash, тире и сравнение строк
Я пытаюсь сравнить две строки в простом сценарии оболочки. Я использовал /bin/sh вместо /bin/bash , и после бесчисленных часов отладки оказалось, что sh (на самом деле это тире) не может обработать этот блок кода:
if [ "$var" == "string" ]...
38782 просмотров
schedule
05.04.2023
Выполнение сценария Bash с шебангом и без него в Linux и BSD
Как и кто определяет, что выполняется, когда Bash-подобный скрипт выполняется как двоичный файл без шебанга?
Я предполагаю, что запуск обычного скрипта с shebang обрабатывается с помощью binfmt_script Linux-модуль, который проверяет шебанг,...
4825 просмотров
schedule
24.02.2023
Как регулярное выражение сравнить строку в тире?
По соображениям совместимости я перемещаю bash-скрипт в dash. Есть ли альтернатива POSIX / Dash следующему сравнению?
COMPARE_TO="^(lp:~?|https?://|svn://|svn\+ssh://|bzr://|bzr\+ssh://|git://|ssh://)"
if [[ $COMPARE =~ $COMPARE_TO ]]; then...
3938 просмотров
schedule
15.06.2023
shell - Вставить символ с разными индексами в строку
В конечном итоге он станет частью более крупного скрипта, поэтому его необходимо написать в сценарии оболочки. Простая задача на других языках, но у меня возникли проблемы с ее выполнением в оболочке. В основном у меня есть строка, и я хочу вставить...
638 просмотров
schedule
02.08.2022
Запустите скрипт bash с помощью sh
У меня есть скрипт bash, и он требует bash.
Другой человек пытается запустить его с помощью
sh script_name.sh
И это не удается, потому что sh является символической ссылкой на dash в его дистрибутиве.
$ ls -la /bin/sh
lrwxrwxrwx 1 root...
83548 просмотров
schedule
12.02.2024
Надежно печатать строку с новой строкой как в bash, так и в тире
У меня есть следующий скрипт:
#!/bin/sh
echo "111\n111"
echo -e "222\n222"
Ни одна из команд не работает как в bash, так и в dash:
$ /bin/dash test.sh
111
111
-e 222
222
$ /bin/bash test.sh
111\n111
222
222
Поскольку я не могу...
613 просмотров
schedule
12.02.2023
Использование оболочки Bourne printf %s
У меня есть простая функция оболочки debug_print, которую я использую для написания больших сценариев оболочки. В общем, я стараюсь писать только Bourne-совместимые скрипты и избегаю башизмов. В этом случае Bash-версия моей функции debug_print...
1518 просмотров
schedule
10.01.2023
сценарий оболочки: `[[` не работает должным образом
У меня есть сценарий:
ENABLE_SYSLOG=true
test -r /etc/default/inotifywait && . /etc/default/inotifywait || exit 99
test -d $INOTIFY_FOLDER || exit 100
inotifywait -mrq -e ATTRIB --format '%w%f' "$INOTIFY_FOLDER" | while IFS= read -r FILE...
176 просмотров
schedule
11.07.2022
Как узнать, используется ли в сценарии bash или dash?
Я пишу скрипт bash, и он выдает ошибку при использовании команды «sh» в Ubuntu (кажется, он не совместим с тире, я изучаю эту тему). Поэтому я хотел бы определить, используется ли тире вместо bash, чтобы вызвать ошибку.
Как я могу обнаружить это в...
4166 просмотров
schedule
22.05.2022
Bash и Dash непоследовательно проверяют коды ошибок подстановки команд с помощью `errexit`
Кажется, я столкнулся с очень, очень странным несоответствием в том, как dash и bash проверяют условия ошибки с опцией errexit .
Используя как dash , так и bash без опции set -e / set -o errexit , следующая программа:
foo()
{...
657 просмотров
schedule
13.04.2022
Почему разделение поля WORD не происходит в операторе case WORD in, когда WORD является переменной?
Сценарий оболочки:
#!/bin/sh
a="foo bar"
case $a in
"foo bar")
echo case 1
;;
esac
case foo bar in
"foo bar")
echo case 2
;;
esac
Выполнение этого с bash приводит к следующему выводу и ошибке....
34 просмотров
schedule
07.03.2023
Регрессия: экспортированная функция Bash потеряна после прохождения другого процесса
При переходе с Ubuntu 14.04 на 16.04 я заметил, что несколько моих сценариев Bash не работают из-за отсутствия экспортированных функций. Интересно, связано ли это с исправлениями ошибки Shellshock , хотя я просто export -f функции, не полагаясь...
306 просмотров
schedule
05.05.2023
bash: невозможно установить и использовать псевдоним в одной строке
Я ожидаю, что во второй строке будет foo вместо command not found :
$ alias foo="echo bac" ; foo;
-bash: foo: command not found
$ foo
bac
$
Почему во второй строке не будет foo ? Протестировано со следующими оболочками, такое же...
710 просмотров
schedule
12.02.2023
эхо выводит другой ответ от sh и bash
Я запускал свой скрипт тремя способами, и результат был разным. Не могли бы вы объяснить мне, почему он работает именно так? Спасибо!! Вот мой сценарий
#!/bin/bash
#Program:
# This program shows "Hello World!" in your screen.
echo -e "Hello...
770 просмотров
schedule
02.10.2022
тире скрипт, отправьте да для команды
Я хочу вызвать команду со сценарием, используя тире. вот мой код:
#!/bin/sh
ip='172.45.0.219'
cmd1='yes yes'
cmd2="./ssh foo@$ip"
eval $cmd1 | $cmd2
когда я запускаю свой скрипт, это мой вывод:
Pseudo-terminal will not be...
94 просмотров
schedule
10.10.2022