
Ubuntu日本語フォーラム

ログインしていません。
修正:アドレスが無効になっていました。
http://pc944.up.seesaa.net/plymouth-setting.sh
あらためて。
オフライン
修正:またもとの話に戻ってしまいますが、こちらが正しいアドレスです。
http://pc944.up.seesaa.net/image/plymouth-setting.sh
オフライン
pc944さん
わざわざ有難うございます。
kiyopさん
aaaの中には管理権限で作成されたものが入ってますが
rm -rf aaa
で削除されました。
(test用スクリプト内は)
#!/bin/sh echo "ファイルを作成します" mkdir aaa sleep 3 echo "ファイルを削除します" rm -rf aaa
これだけです。
私が真剣に作成しているスクリプトでは
rm -rf
でも、削除はされませんでした。
オフライン
そのことなら、分かりそうです。
そのスクリプトを、どこかにアップロードしてもらうか、初めの1行のコメントを載せてください。
あと、管理者権限のも削除できる理由→フォルダの所有者がそのユーザーだからだと思います。
あと、そのスクリプトのほかの場所、たとえば
mkdir aaa
echo "A"
sudo gedit
gksudo nautilus
rm -rf aaa
なら、あらかじめaaaを作っておいて
rm -rf aaa
mkdiraaa
echo "A"
sudo gedit
gksudo nautilus
のようにして、ほかより先に記載して、正しく実行されるようなら、順序的に問題があることがわかるのですが。
オフライン
すみません。
また質問ができてしまいました。
これができればスクリプト完成なのですが
gnome-terminal --command='コマンド'
これで新しく開いた端末に自動でコマンドを実行させますよね?
実行中は当然、端末は開いたままですが、実行が終了すると勝手に閉じてしまいます。
結果が出たと同時に実行終了されるコマンドなので結果を見る間もなく端末が閉じてしまいます。
実行が終了しても端末が閉じないようにすることはできますか?
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※先ほどのPlymouthのスクリプトを見てください。処理後に何秒か間をあけています。sleepで。
(sudo がついてますね?間違いかも。自分の。)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
ディレクトリの場合、「中に誰か居る」(削除しようとしているディレクトリ以下をカレントディレクトリにしているプロセスがある)と削除できない ということはないでしょうか。
# MS-Windowsでは削除できないんですが、Linuxの場合はどっちだった失念。ひょっとしたら、自分自身のプロセス(や、その子)でなければ大丈夫かもしれません。
本人が原因をわかっていて調査しているので無い限り、再現するスクリプトを掲載できないと、他の人はほとんど判りませんよ(「正しい例」を見せられても、正しくない場合になぜ障害が発生するのかはわかりません。)逆に言えば、単純化のために消した中に原因があるということになります(消した分部なので本人以外には利用できない情報ですが)
# 実物を掲示する必要がある と言う意味ではありません。が、同じ現象が再現するものの提示が必要です。再現しないものを提示されても、判断は難しいです(再現しない類似のソースで気がつく可能性があるのは、たまたま、そっくり同じ現象で調査したことがある人ぐらいです。)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
削除できました。
こちらの間違えで
cd aaa
と上の方でやっていたのでディレクトリを戻していませんでした。
cd
rm -rf aaa
これで削除できました。
すみません
kiyopさん
できればsleep や readをどこにつけるか詳しく教えてください。
gnome-terminal --command='コマンド' sleep 10
など色々やってみましたが新しく開いた端末は変わらず、すぐに閉じてしまい、スクリプト実行中の端末の時間が長くなっただけでした。
オフライン
kiyopではありませんが、ついでに。
gnome-terminal --command='sh ./aaa.sh'
で、aaa.shに
echo "インストールを開始します。"
sudo apt-get install **
echo "完了しました。"
sleep 10s
のような形か、
gnome-terminal --command='コマンド; sleep 10s'
のような形か、どちらかです。
オフライン
pc944 による投稿:
kiyopではありませんが、ついでに。
gnome-terminal --command='コマンド; sleep 10s'
残念ながらこれではできませんでした。
スクリプトを2つ使うのはあまりしたくないのですが、それしか方法はないですかね?
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
- アイコンダブルクリックで,「端末内で実行する(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!!" ... 以下,同上 = 実行させたいコマンドたち ...
# 方法は他にもいろいろあるとは思いますが…
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
初めの方の投稿を読んでいなかったので,質問内容と微妙に違う投稿でした.
#42 は,「端末を開くコマンドとその中で実行したいコマンドを一つのスクリプトにどう書くか?」の一点に絞った,
1. GUI (ダブルクリック,ランチャ,メニュー等) でスクリプトを実行する場合
と,
2. CLI (既に開いた端末) でスクリプトを実行する場合
の2つのシチュエーション下での例です.
オフライン
#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 って事だと見ますが、少し違うことになってきませんか?
長くなってすいません。
オフライン
gnome-terminal --command='echo "C"; sleep 10s'
このようにしましたが10秒、止まってはくれませんでした。
gnome-terminal --command='sh ./aaa.sh'
/usr/local/binの中に入れれば問題ないと思いますが
こうした場合だとスクリプトの保存場所が一定になってしまいます。
スクリプトを移動した場合、上のコマンドが使えなくなってしまいます。
xterm -e 'コマンド; read a'
確かにこれはできたのですが端末の種類が違うので(見た目にこだわっているだけなのですが)やはり
gnome-terminalでコマンドを実行していですね。
オフライン
--commandは、1つしか使わせてくれないみたいです。
(;で連結する方法が使えない)
だから、やはり、2つに分けますかね・・・
もしかしたら、
echo "Y" | sh ./aaa.sh
とかで、case分岐でいけるかも?しばらく自分でやってなかったので、いまからやってみます。
それと、-eは--commandと同じだったと思います。
オフライン