私は大学でシェルスクリプトの入門UNIXコースを聞いていますが、単一のテキストファイルに複数のシェルスクリプトを持つことができるかどうか疑問に思います。たとえば、Pascal では次のような場合があります。
var…
begin
end.
//another program which will be ignore
コンパイラは、一定期間後のすべての内容を無視します。 Shellはこのようなことをすることができますか?シェルの例をたくさん見なければならず、u + xの権限を気にせずに同じスクリプトを実行したい場合は、同じ名前のスクリプトを実行するために多くのファイルを開くことはあまり便利ではないので、このように尋ねます。いつでも次のコード例に進みます。したがって、次のようになります。終了してください。もう読まないでください。 ?この愚かな質問に答えてくれてありがとう。
答え1
上記の目的のために(たとえば、特定の行でスクリプトを停止するには)、exit
この時点で単にブレークを使用するだけです。これは実際の生活に適用するには少し粗いようですが、学習目的には適しています。
説明する:
#!/bin/sh
# now I am working here
do_something
exit
# this is old, do not execute
did_something
exit
# this is even older, do not execute
did_something_long_ago
答え2
次の構造を使用して: <<"SOMEWORD" ... SOMEWORD
コメントを置き換えることができます#
##### The following "code block" is effectively ignored
: <<"SOMEWORD"
/etc/init.d/mydatabase clean_stop
mydatabase_dump /var/db/db1 /mnt/fsrv0/backups/db1
logger -t SYSHALT "System halt: pre-shutdown actions done, now shutting down the system"
shutdown -h NOW
SOMEWORD
##### The ignored codeblock ends here