質問: あなたがタイプスクリプトにいるかどうかを知る方法は? scriptコマンドを使用して、ターミナルからのすべての出力をtypescriptというファイルに保存しています。またはscript fooファイルに保存するにはfoo。ここで、コマンドの後にコマンドを入力しているときに、typescriptを使用しているかどうかを忘れたとします。typescript内にいるかどうかを確認するにはどうすればよいですか?
回答: 興味深い問題。私は小さなbashスクリプトがかなり確実に仕事をすることができることを発見しました:#!/bin/bash pp=$(ps -o ppid= $$) while [[ $pp != 1 ]] do line=$(ps -o ppid= -o comm= $pp | sed 's/^ *//') comm=${line#* } pp=${line%% *} if [[ $comm == script ]] # might need a different comparison then echo "in script" exit 0 fi done echo "not in script" これはstephanechazelasによって提案されたものとは少し異なると思います。私のスクリプトは、linux/unixプロセスがpid1を見つけるまで、またはプロセスとして「スクリプト」を見つけるまで、親子関係を上っていきます。