例えば
$ pwd
/home/my_name
コマンドが人によって入力されたのか、スクリプトによって実行されたのかが認識されたり認識されなかったりします。
答え1
いいえ。
スクリプトまたはシェル関数は(対話型シェルであることを示す)を$-
確認して検索するか、コントロールtty(たとえば)を見つけることができますが、これは完璧な方法ではありません。i
tty
ユーザーのシェルセッションで実行されたすべてのコマンドをログに記録したり、そのシェル履歴ファイルを表示したりしてroot
も、表示されるコマンドはそのユーザーが直接入力したのか、コマンドラインに挿入したのか(またはログに入力したのか)わかりません。 )スクリプトまたは他の方法で。
答え2
実際には完璧な(または偽)証明方法はありませんが(少なくとも私が知っている限り)、技術的には次のことで違いを確認できます。
root@aw [~]# set > cons
root@aw [~]# cat ./test.sh
#!/bin/bash
set > scri
root@aw [~]# ./test.sh
それから
root@aw [~]# diff cons scri
さまざまな違いがあるので、好きなものを選択してください。