ファイルを作成し、次のシェル順にアクセス権を定義しますcom
。fic
$ cat com
if tty>/dev/null
then read x
else read x<fic
fi
echo $x
$ cat fic
abcd
$ ls -l com fic
-r-xr-xr-x 1 jmr ens 70 Jan 22 09:41 com
-r--r--r-- 1 jmr ens 5 Jan 22 09:41 fic
$
echo $x
起動時に(フォアグラウンドで)停止するのはなぜですか?読まなければならcom
ないのではないかfic
?
ベストアンサー1
if tty>/dev/null ; then
read x
else
read x<fic
fi
つまり、fic
エラーが返された場合にのみ読み取られます。tty
これは端末ではないことがわかったときに発生stdin
します。通常、これはスクリプトがパイプラインにある場合、またはnohup
cronジョブを介してまたはリモートで実行されたときに発生しますssh -T
。
条件付きで使用することは[ -t 0 ]
ほぼ同じです([
現在akaが一般的に組み込まれているので、より高速です)。test