Это похоже на то, что вы положили функцию run внутри вашего скрипта run2.sh. Вы используете код выхода внутри run, а источник - файл run2.sh в bash tty. Если дать функции запуска его полномочия для выхода из вашего скрипта и дать run2.sh его полномочия для выхода из терминатора. Тогда, поскольку функция запуска имеет силу, чтобы выйти из вашего темпера.
#! /bin/sh
# use . run2.sh
run()
{
echo "this is run"
#return 0
exit 0
}
echo "this is begin"
run
echo "this is end"
В любом случае, я одобряю Kaz, это проблема дизайна.
Вы можете иметь вторую карту, чтобы позаботиться о хобби, а затем отфильтровать результаты. Конечно, есть и другие способы сделать это.
class App extends React.Component {
constructor() {
super();
this.state = {
results: [
{
hobby: [28, 12, 16],
id: 233,
Name: 'John'
},
{
hobby: [12, 28],
id: 100,
Name: 'Andy'
}
],
hobbies: [
{id: 28, name: "Football"},
{id: 12, name: "Reading"},
{id: 16, name: "Dancing"}
]
};
}
render() {
return (
this.state.results.map(person =>
(
<div key={person.id}>
<p>{person.Name}</p>
<div>{person.hobby.map(hobby => (
<div key={hobby}>
{this.state.hobbies.filter(h => h.id === hobby)[0].name}
</div>
))}
</div>
</div>
)
)
);
}
}
ReactDOM.render( <App /> ,
document.getElementById('root')
);
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<div id="root" />