teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントを受けての追記

2018/10/29 13:38

投稿

otn
otn

スコア86349

answer CHANGED
@@ -3,4 +3,21 @@
3
3
  if [ "$TMUX" ]
4
4
  then cd 目的ディレクトリ
5
5
  fi
6
- ```
6
+ ```
7
+ #追記
8
+ > 希望は最初にtmuxを開いたときに実行して、ペインを分割したときには実行しないことです。
9
+
10
+ Linux前提で、こんな感じで。
11
+ ```Bash
12
+ ppid=$(ps p $$ o ppid h)
13
+ if [ "$(ps p $ppid o cmd h)" = tmux ] &&
14
+ [ $(ps -C bash o ppid h | grep -w $ppid | wc -l) = 1 ]
15
+ then cd 目的ディレクトリ
16
+ fi
17
+ ```
18
+ 1行目:今の`bash`の親プロセスIDを求める
19
+ 2行目:その親プロセス名が`tmux`であり、かつ、
20
+ 3行目:プロセス名が`bash`であるプロセスについて、親プロセスが今の`bash`と同じものの数を数えて1個ならば
21
+ ⇒ `tmux`を開いた時の最初の`bash`である
22
+
23
+ LinuxでないOSの場合は、`ps`コマンドのオプションが異なる可能性があるので、OSに合わせて修正してください。