Как ловить возврат в сценарие с источником от ZSHLinux

Ответить
Anonymous
 Как ловить возврат в сценарие с источником от ZSH

Сообщение Anonymous »

Я пишу сценарий, который должен быть получен и который я использую ежедневно в терминале (ZSH), и решение одной из проблем в сценарии состоит в том, чтобы разблокировать блокировку стада, я бы сделал это в ловушке для возврата. Здесь, test.sh :

Код: Выделить всё

#!/bin/bash

trap 'echo returned' RETURN

echo "Hello, World!"
< /code>
Здесь происходит, когда я поставляю его с zsh: < /p>

[urpagin:~/sandbox/tmp_sbox/F0MPlT]$ echo "$0"
/usr/bin/zsh
[urpagin:~/sandbox/tmp_sbox/F0MPlT]$ source test.sh
test.sh:trap:3: undefined signal: RETURN
Hello, World!
< /code>
Здесь происходит, когда я поставляю его с помощью Bash: < /p>
[urpagin@ikari F0MPlT]$ echo "$0"
bash
[urpagin@ikari F0MPlT]$ source test.sh
Hello, World!
returned
и с другим стилем, который, кажется, из ZSH, мы определяем test2.sh :

Код: Выделить всё

#!/bin/zsh

TRAPEXIT() {
echo "Exited"
}

TRAPRETURN() {
echo "Returned"
}

echo "Hello, World!"
Мы видим, что при запуске как обычный скрипт с использованием zsh , функция trapexit () вызывается, тогда как функция trapreturn () не имеет

Код: Выделить всё

[urpagin:~/sandbox/tmp_sbox/F0MPlT]$ echo "$0"
/usr/bin/zsh
[urpagin:~/sandbox/tmp_sbox/F0MPlT]$ zsh test2.sh
Hello, World!
Exited
[urpagin:~/sandbox/tmp_sbox/F0MPlT]$ source test2.sh
Hello, World!
Exited
Мы также отмечаем, что функция tropreturn () никогда не вызывается, даже если мы поставляем файл. Ожидаемое поведение будет заключаться в том, что функция вызывается. < /P>
Так кажется: < /p>

[*]

Код: Выделить всё

trap RETURN
-это bash-специфический и не распознается в zsh.
zsh использует такие функции, как Trapexit , но Rapreturn не существует.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... t-from-zsh
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»