web-dev-qa-db-ja.com

Bashスクリプトの<<!ENDとは何ですか?

考慮してください:

#!/bin/bash

/u01/app/Oracle/middleware/Oracle_common/common/bin/wlst.sh <<!END
connect('user','pw');
p=redeploy('application');
p.printStatus();
exit();
!END

上記のスクリプトは、weblogicアプリケーションの再デプロイを実行するのに役立ちます。わからないところはwlst.sh <<!ENDおよび最後の!END

両方の機能は何ですか!ENDステートメント?

28
Isaac

Here Document -<<!ENDおよび!ENDはwlst.shのstdinに供給されます

次のように表現することもできます。

echo "connect('user','pw');
p=redeploy('application');
p.printStatus();
exit();" | /u01/app/Oracle/middleware/Oracle_common/common/bin/wlst.sh

ただし、サブシェルでコマンドを実行する潜在的な影響はありません。

また、次のように表すこともできます。

echo "connect('user','pw');
p=redeploy('application');
p.printStatus();
exit();" > someFile
/u01/app/Oracle/middleware/Oracle_common/common/bin/wlst.sh < someFile
rm someFile
47
glenn jackman