2011-10-09 60 views
0

有這麼簡單的bash腳本:GNU Screen:從bash腳本啓動時,-S選項不起作用

/bin/bash 
screen -dm -S "backup" 
wget -O backup-$(date +%Y-%m-%d).txt http://link-to-very-huge-file/ 

問題是:當screen -dm -S "backup"執行時,會出現新的屏幕會話。但它沒有命名!當我(來自ssh)做screen -ls它給了我:

(10/09/2011 04:35:05 PM)  (Detached) 
1969.VNC  (10/09/2011 01:53:45 PM)  (Detached) 
910.minecraft (10/09/2011 12:59:29 PM)  (Detached) 

我自己創造了最後兩個。但是第一個由bash腳本創建的,沒有名稱,甚至沒有id!

當我自己做screen -dm -S "backup"時,它工作正常並給我命名的屏幕會話:

3527.backup (10/09/2011 04:44:40 PM)  (Detached) 

但是爲什麼腳本會壞?如何使其工作?

回答

2

這很奇怪;這個對我有用。

你能複製並粘貼確切 bash腳本的內容嗎?在你的問題中的一個在第一行缺少#!,並且在screen命令後面有一行wget命令。這讓我懷疑問題在於你沒有向我們展示的代碼。

這就是我剛纔的嘗試。 (我加了-c /dev/null,以避免加載我相當詳盡的.screenrc文件):

$ screen -ls 
There is a screen on: 
     2454.pts-1.kvetch  (09/09/2011 11:00:03 AM)  (Detached) 
1 Socket in /var/run/screen/S-kst. 

$ cat foo.bash 
#!/bin/bash 

screen -dm -S FROM_BASH -c /dev/null sleep 12345 
$ ./foo.bash 
$ screen -ls 
There are screens on: 
     10384.FROM_BASH (10/09/2011 01:22:48 PM)  (Detached) 
     2454.pts-1.kvetch  (09/09/2011 11:00:03 AM)  (Detached) 
2 Sockets in /var/run/screen/S-kst. 

$ 

我使用的屏幕4.00.03jw4在Ubuntu 11.04。