お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#26 2010-04-26 19:08:40

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

修正:アドレスが無効になっていました。
http://pc944.up.seesaa.net/plymouth-setting.sh
あらためて。

オフライン

 

#27 2010-04-26 19:14:37

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

修正:またもとの話に戻ってしまいますが、こちらが正しいアドレスです。
http://pc944.up.seesaa.net/image/plymouth-setting.sh

オフライン

 

#28 2010-04-26 20:26:02

sony5614
メンバ
登録日: 2009-08-17

Re: シェルスクリプト

pc944さん
わざわざ有難うございます。

kiyopさん
aaaの中には管理権限で作成されたものが入ってますが
rm -rf aaa
で削除されました。
(test用スクリプト内は)

コード:

#!/bin/sh

echo "ファイルを作成します"
mkdir aaa
sleep 3
echo "ファイルを削除します"
rm -rf aaa

これだけです。
私が真剣に作成しているスクリプトでは
rm -rf
でも、削除はされませんでした。

オフライン

 

#29 2010-04-26 20:34:50

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

そのことなら、分かりそうです。
そのスクリプトを、どこかにアップロードしてもらうか、初めの1行のコメントを載せてください。
あと、管理者権限のも削除できる理由→フォルダの所有者がそのユーザーだからだと思います。
あと、そのスクリプトのほかの場所、たとえば
mkdir aaa
echo "A"
sudo gedit
gksudo nautilus
rm -rf aaa
なら、あらかじめaaaを作っておいて
rm -rf aaa
mkdiraaa
echo "A"
sudo gedit
gksudo nautilus
のようにして、ほかより先に記載して、正しく実行されるようなら、順序的に問題があることがわかるのですが。

オフライン

 

#30 2010-04-26 20:35:45

sony5614
メンバ
登録日: 2009-08-17

Re: シェルスクリプト

すみません。
また質問ができてしまいました。
これができればスクリプト完成なのですが

gnome-terminal --command='コマンド'

これで新しく開いた端末に自動でコマンドを実行させますよね?
実行中は当然、端末は開いたままですが、実行が終了すると勝手に閉じてしまいます。
結果が出たと同時に実行終了されるコマンドなので結果を見る間もなく端末が閉じてしまいます。
実行が終了しても端末が閉じないようにすることはできますか?

オフライン

 

#31 2010-04-27 07:17:06

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#32 2010-04-27 07:35:26

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

sleep 10でもいいんですね。
sleep 10sだと思ってました。

オフライン

 

#33 2010-04-27 07:55:23

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

※先ほどのPlymouthのスクリプトを見てください。処理後に何秒か間をあけています。sleepで。
(sudo がついてますね?間違いかも。自分の。)

オフライン

 

#34 2010-04-27 08:23:56

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#35 2010-04-27 08:42:24

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#36 2010-04-27 11:09:36

weyk
メンバ
登録日: 2009-04-03

Re: シェルスクリプト

 ディレクトリの場合、「中に誰か居る」(削除しようとしているディレクトリ以下をカレントディレクトリにしているプロセスがある)と削除できない ということはないでしょうか。
# MS-Windowsでは削除できないんですが、Linuxの場合はどっちだった失念。ひょっとしたら、自分自身のプロセス(や、その子)でなければ大丈夫かもしれません。

 本人が原因をわかっていて調査しているので無い限り、再現するスクリプトを掲載できないと、他の人はほとんど判りませんよ(「正しい例」を見せられても、正しくない場合になぜ障害が発生するのかはわかりません。)逆に言えば、単純化のために消した中に原因があるということになります(消した分部なので本人以外には利用できない情報ですが)
# 実物を掲示する必要がある と言う意味ではありません。が、同じ現象が再現するものの提示が必要です。再現しないものを提示されても、判断は難しいです(再現しない類似のソースで気がつく可能性があるのは、たまたま、そっくり同じ現象で調査したことがある人ぐらいです。)

オフライン

 

#37 2010-04-27 12:34:15

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#38 2010-04-27 19:10:10

sony5614
メンバ
登録日: 2009-08-17

Re: シェルスクリプト

削除できました。
こちらの間違えで
cd aaa
と上の方でやっていたのでディレクトリを戻していませんでした。
cd
rm -rf aaa
これで削除できました。
すみません

kiyopさん
できればsleep や readをどこにつけるか詳しく教えてください。
gnome-terminal --command='コマンド' sleep 10
など色々やってみましたが新しく開いた端末は変わらず、すぐに閉じてしまい、スクリプト実行中の端末の時間が長くなっただけでした。

オフライン

 

#39 2010-04-27 23:24:48

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

kiyopではありませんが、ついでに。
gnome-terminal --command='sh ./aaa.sh'
で、aaa.shに
echo "インストールを開始します。"
sudo apt-get install **
echo "完了しました。"
sleep 10s
のような形か、
gnome-terminal --command='コマンド; sleep 10s'
のような形か、どちらかです。

オフライン

 

#40 2010-04-27 23:56:26

sony5614
メンバ
登録日: 2009-08-17

Re: シェルスクリプト

pc944 による投稿:

kiyopではありませんが、ついでに。
gnome-terminal --command='コマンド; sleep 10s'

残念ながらこれではできませんでした。
スクリプトを2つ使うのはあまりしたくないのですが、それしか方法はないですかね?

オフライン

 

#41 2010-04-28 06:05:09

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#42 2010-04-28 06:40:39

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: シェルスクリプト

- アイコンダブルクリックで,「端末内で実行する(T)」ではなく「実行する(R)」を選んだ場合でも,端末を開いて実行する

コード:

#! /bin/bash
[ -z "$WINDOWID" ] && exec gnome-terminal -e "$0"
echo "Hello World!!"
date
uname -a
lsb_release -dc
read dummy

- 「実行する(R)」を選んだ場合でも,または既に開いている端末からでの実行であっても,新たな端末を開いてスクリプトを実行する.

コード:

#! /bin/bash
[ "$1" = --new-terminal-opened ] || exec gnome-terminal -e "$0 --new-terminal-opened"
echo "Hello World!!"
... 以下,同上 ...

または,

コード:

#! /bin/bash
[ -n "$NEW_TERMINAL_OPENED" ] || exec gnome-terminal -e "env NEW_TERMINAL_OPENED=1 $0"
echo "Hello World!!"
... 以下,同上 = 実行させたいコマンドたち ...

# 方法は他にもいろいろあるとは思いますが…

オフライン

 

#43 2010-04-28 08:36:20

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#44 2010-04-28 08:47:14

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#45 2010-04-28 08:59:25

kiyop
拒否
From: http://kiyoandkei.bbs.fc2.com/
登録日: 2010-01-23

Re: シェルスクリプト

※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。

オフライン

 

#46 2010-04-28 14:37:54

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: シェルスクリプト

初めの方の投稿を読んでいなかったので,質問内容と微妙に違う投稿でした.
#42 は,「端末を開くコマンドとその中で実行したいコマンドを一つのスクリプトにどう書くか?」の一点に絞った,
1. GUI (ダブルクリック,ランチャ,メニュー等) でスクリプトを実行する場合
と,
2. CLI (既に開いた端末) でスクリプトを実行する場合
の2つのシチュエーション下での例です.

オフライン

 

#47 2010-04-28 18:48:14

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

#41
えっと、少し違うのでは?
端末の中で新しい端末を開き、その端末でsleep 10sですよ?
だから~えっと。新しい端末で実行するコマンド(gnome-terminal --command='ここ')で実行するコマンドが、
'sh ./*****.sh'のようであれば、*****.shの最後に付ければできますが、
'nautilus'のような場合は?ってことだと思います。
以下、例です。

コード:

echo "a"
echo "b"
gnome-terminal --command='echo "c"'
echo "d"
のような場合でsleepする際に、
echo "a"
echo "b"
gnome-terminal --command='sh ./a.sh'
echo "d"
として、
a.shを新しく作り、
echo "c"
sleep 10s
としないとできませんかってことだと思います。sony5614さんが聞いているのは。
だから、
echo "a"
echo "b"
gnome-terminal --command='echo "C"; sleep 10s'
echo "d"
のように、1つでできませんかってことだと。kiyopさんの、
echo "a"
echo "b"
gnome-terminal --command='echo "C"'
echo "d"
sleep 10s
って事だと見ますが、少し違うことになってきませんか?

長くなってすいません。

オフライン

 

#48 2010-04-28 19:11:17

sony5614
メンバ
登録日: 2009-08-17

Re: シェルスクリプト

コード:

gnome-terminal --command='echo "C"; sleep 10s'

このようにしましたが10秒、止まってはくれませんでした。

コード:

gnome-terminal --command='sh ./aaa.sh'

/usr/local/binの中に入れれば問題ないと思いますが
こうした場合だとスクリプトの保存場所が一定になってしまいます。
スクリプトを移動した場合、上のコマンドが使えなくなってしまいます。

xterm -e 'コマンド; read a'
確かにこれはできたのですが端末の種類が違うので(見た目にこだわっているだけなのですが)やはり
gnome-terminalでコマンドを実行していですね。

オフライン

 

#49 2010-04-28 20:20:44

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

--commandは、1つしか使わせてくれないみたいです。
(;で連結する方法が使えない)
だから、やはり、2つに分けますかね・・・
もしかしたら、
echo "Y" | sh ./aaa.sh
とかで、case分岐でいけるかも?しばらく自分でやってなかったので、いまからやってみます。
それと、-eは--commandと同じだったと思います。

オフライン

 

#50 2010-04-28 20:21:58

pc944
メンバ
From: Japan
登録日: 2010-03-03

Re: シェルスクリプト

だから、1ファイルで2役を実現することが鍵だと・・・。

オフライン

 

Board footer

Powered by FluxBB