GNU screen 起動時にコマンドを実行できません

GNU screen 起動時にコマンドを実行できません

書かれていることと似たようなことをしたい ここzshを使わずに(私はbashを使います)、screenを起動しようとすると

screen 'cd /home/cataldo/Programs'

次のエラーが発生します:

Cannot exec 'cd home/cataldo/Programs': No such file or directory

exec の後に引用符がないと動作しません。二重引用符でも違いはありません。bash -c "cd .." を使用しても動作しません。

何らかの権限の問題か、起動時に screen が特別なユーザーとしてコマンドを実行している可能性があります。

ご助力ありがとうございます!

screen --version
Screen version 4.00.03jw4 (FAU) 2-May-06

cat /etc/debian_version 
6.0.3

答え1

cdはシェル組み込みコマンドなので動作しません( を試してくださいwhich cd)。Screenにはchdir コマンドこれを使用して目標を達成できます。.screenrc 内に次の内容を入力します。

chdir /home/cataldo/Programs

これで画面が起動し、指定されたディレクトリに移動します。

答え2

screencdはシェル組み込みコマンドであるためを知らないため、screen実行できません。ただし、 にはscreen組み込みコマンド がありますchdir。コマンドラインchdirから を単独で実行するとscreenscreenセッション内のすべての新しいウィンドウは $HOME で起動します。コマンドラインchdir /home/cataldo/Programsからを実行するとscreenscreenセッション内のすべての新しいウィンドウは で起動します/home/cataldo/Programs

新しいセッションを開始するときに異なるディレクトリに 3 つのウィンドウを開きたい場合はscreen、 で~/.screenrcディレクトリを定義してchdirからすぐに新しいウィンドウを開始します。

# Start these windows when screen starts up
chdir /home/cataldo/Programs
screen 0
chdir /usr/local/bin
screen 1
chdir /tmp
screen 2
chdir

man 1 screen(最後の行に注目してください)

chdir [directory]
Change the current directory of screen to the specified directory or,
if  called  without  an argument,  to your home directory (the value of
the environment variable $HOME).  All windows that are created by means
of the "screen" command from within ".screenrc" or by means of "C-a : 
screen ..." or "C-a c" use this as their default directory.  Without a 
chdir command, this would be the directory from which screen was invoked.  
Hardcopy  and  log  files  are  always written  to  the window's default 
directory, not the current directory of the process running in the window.  
You can use this command multiple times in your .screenrc  to  start  
various windows  in  different default directories, but the last chdir value 
will affect all the windows you create interactively.

答え3

あなたの言うことはあまり意味がありません。たとえそれがcd実際のコマンドであったとしても、screen はディレクトリを変更してすぐに終了するだけなので、誰にとっても何の役にも立ちません。

特定のディレクトリ内の特定のスクリーン セッションのみを開始する場合:

(cd home/cataldo/Programs && screen)

これにより、ディレクトリが変更され、シェルで screen が起動され、screen が終了すると既存のディレクトリに戻ります。

答え4

プロンプトでまたはにstuff "cd /home/cataldo/Programs^M"以下を追加することができます。~/.screenrcC-a :

関連情報