cd
각 탭의 다른 폴더로 이동합니다 (예 : 고유 한 명령 실행). 이 스크립트를 사용하여 데스크톱에서 스크립트를 클릭하고 일상적인 개발 환경에서 원하는대로 터미널을 열 수 있도록합니다.
탭에서 실행할 고유 한 명령을 사용하여 3 개의 터미널 탭을 열어 보는 스크립트가 있습니다.
#!/bin/bash
gnome-terminal --tab -- bash -c "source $HOME/.bashrc && set-title hey; exec bash"
gnome-terminal --tab -- bash -c "cd ~; exec bash"
gnome-terminal --tab
으로 실행하면 ./open_tabs.sh
3 개의 새 탭 set-title
이 열리지 만 안타깝게도 탭 제목을 설정하는 데 작동하지 않습니다! 열리는 탭에서 다음 오류가 발생합니다.
bash: set-title: command not found
나는 이와 같은 set-title
기능으로 정의했습니다 ~/.bashrc
. 그 목적은 터미널 창 상단에 제목 문자열을 설정하는 것입니다. 수동으로 사용할 때 완벽하게 작동합니다. 예 : set-title hey how are you?
"hey how are you?" 터미널 창 상단에 있습니다.
# From: https://unix.stackexchange.com/questions/177572/how-to-rename-terminal-tab-title-in-gnome-terminal/566383#566383
set-title() {
# If the length of string stored in variable `PS1_BAK` is zero...
# - See `man test` to know that `-z` means "the length of STRING is zero"
if [[ -z "$PS1_BAK" ]]; then
# Back up your current Bash Prompt String 1 (`PS1`) into a global backup variable `PS1_BAK`
PS1_BAK=$PS1
fi
# Set the title escape sequence string with this format: `\[\e]2;new title\a\]`
# - See: https://wiki.archlinux.org/index.php/Bash/Prompt_customization#Customizing_the_terminal_window_title
TITLE="\[\e]2;$@\a\]"
# Now append the escaped title string to the end of your original `PS1` string (`PS1_BAK`), and set your
# new `PS1` string to this new value
PS1=${PS1_BAK}${TITLE}
}
이 문제를 어떻게 해결합니까!? 나는 export
노래하고 source
노래를 시도했지만 내가 여기서 뭘 잘못하고 있는지 모르겠습니다.
여러 탭이있는 터미널을 열고 응용 프로그램을 실행하십시오. <== 이것이 제가 실제로 해결하려는 문제이지만 gnome-terminal
's --command
( -e
) 옵션은 이제 더 이상 사용되지 않습니다!
# Option “--command” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
bash가 ~/.bashrc
시작시 읽고 실행하도록 하려면 대화 형 셸로 시작합니다.
gnome-terminal --tab -- bash -ic "set-title hey; exec bash"
이제 비대화 형 셸에서 파일을 소싱하는 방법이 작동하지 않는 이유는 무엇입니까? 나는 당신 ~/.bashrc
이 다음과 같이 시작 한다고 강력히 가정합니다 .
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
이것은 그것이 return
소싱 된 쉘이 그것의 어디에도“i”를 가지지 않는다면 $-
, 즉 대화 형 쉘인 경우 아무것도하지 않고 그것을 가능하게 합니다. $-
특수 매개 변수입니다 man bash
.
-
호출시,set
내장 명령에 의해 지정된 현재 옵션 플래그 또는 쉘 자체에 의해 설정된 플래그 (예 :-i
옵션)로 확장됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다