スクリプトでワークグループを変更したいです。だからnewgrp test_grp1
台本に一行を書いた。しかし、この行を実行すると、私のスクリプトは自動的に終了します。この問題を克服するための解決策はありますか?
#/bin/ksh
...
newgrp test_grp1
...
メモ:私はUnix AIXオペレーティングシステムを使用しています。
ベストアンサー1
newgrp
指定したグループを使用してサブシェルを起動します。したがって、スクリプトのこの行は、サブシェルが完了するまで完了しません。
またはを使用してnewgrp
も処理方法が異なります。もう一度bash
ksh
ksh
exec /usr/bin/newgrp [group]
exec
newgrp
戻らないでください。 (一部文書参照ここ.)
戻りたい場合、変更されたグループIDを使用してそのサブシェルでコマンドを実行したい場合は、リダイレクトを使用できます。
たとえば、
#!/bin/ksh
echo "Before newgrp"
/usr/bin/newgrp users <<EONG
echo "hello from within newgrp"
id
EONG
echo "After newgrp"
注:で/usr/bin/newgrp
暗黙的に回避するには、明示的に呼び出してください。スクリプトの最後のコマンドは、元のグループIDを使用して元のシェルで実行されます。exec
ksh