Bashシェルスクリプトで.bashrc関数を呼び出す

Bashシェルスクリプトで.bashrc関数を呼び出す

どちらがどのようなものかを追跡できるように、ターミナルタブの名前を指定できるようにしたいです。この機能が見つかりました(ここ)そしてそれを私の中に入れてください.bashrc

function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$*\a\]"
  PS1=${ORIG}${TITLE}
}

タブ名を呼び出すと、set-title my new tab nameタブ名が期待どおりに「新しいタブ名」に変更されます。問題は、新しいタブを開きますset-title。私が試している方法は次のとおりです。

gnome-terminal --geometry=261x25-0+0 --tab -e "bash -c 'set-title tab1; sleep 10'" --tab -e "bash -c 'set-title tab2; sleep 10"

ただし、次のエラーメッセージが表示されます。

bash: set-title: command not found

私はこれがまだ機能を理解していない新しいGNOMEタブに関連していると思います.bashrc

どのように動作させることができますか?

答え1

関数を使用した瞬間set-titleこの関数を使用して命令を生成できるので、追加したset-title()関数を削除し~/.bashrcてファイルを生成します/usr/local/bin/set-title

#!/bin/bash
echo -ne "\033]0;$1\007"

chmodを追加します。端末を再開した後、次のコマンドchmod +x /usr/local/bin/set-titleでこのコマンドを使用できます。set-title TEST/usr/local/bin/$PATH

その後、次の方法で新しいタブを作成するときに使用できます。

gnome-terminal --geometry=261x25-0+0 \
    --tab -e "bash -c 'set-title TAB1; sleep 10'" \
    --tab -e "bash -c 'set-title TAB2; sleep 10'"

/usr/local/bin/そのファイルが存在しない場合は、$PATHset-title コマンドの絶対パスを試すことができます。

--tab -e "bash -c '/usr/local/bin/set-title TAB1; sleep 10'"

答え2

.bashrc、.bash_profile、.profileなどのinitスクリプトを実行するには、--loginそのオプションでgnome-terminalを起動します。

関連情報