ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

#!/bin/shコミュの「コマンドの同時実行」

  • mixiチェック
  • このエントリーをはてなブックマークに追加
(シェルは,bashを使用しております)

録画ソフトを用いて,
コマンドの自動実行画面を,録画したいと考えているのですが,

----------------------------------------
例えば,test.shというファイルに,

./vnc2swf    ←録画ソフト起動コマンド
ls

と書くと,
1つ目の録画ソフトが終了してからでないと,
2つ目のlsコマンドが実行されません.
-----------------------------------------

 1つ目のコマンドが実行中のままで,
2つ目のコマンドを実行させることは,可能でしょうか?


 初歩的な質問で,恐縮なのですが,
もしご存じの方がおられましたら,コメント頂けませんでしょうか.


 どうかよろしくお願い申し上げます m__m

コメント(35)

便乗です

バックグラウンドで走ってるものを落とすには
psで調べて
killするしかナイのでしょうか?

となると何か面倒なので
ターミナルのタブを増やしたくなる感じです
現在のshellのバックグラウンドで走ってるのを表に持って来るっていう意味だったらfg。

例えば
$ less /etc/hosts &
でバックグラウンドに持って行って、
$ fg
で表に出てくる。
> 2

kill %1
はcshのみかと気付き、man sh したら"jobid"という組込みコマンドを発見。

kill `jobid`
というのに辿り付くまでに10分少々。

少しはmanしたほうがいいんでは?
僕も便乗質問。
起動した標準出力のあるというか対話型のプログラム、TTYが切れた時って繋ぎ直す事、出来ないんですか?
今はscreen使ってるんで問題は無いんだけど、根本的な話として知りたいです。
./vnc2swf &
ls

で,うまく行きました. 
ありがとうございました.
(fgとkill `jobid`も,これから試してみます.)


皆様方,えぇと・・
ハンサムで
頭が良くて格好いいなぁと思いました.


・・ハンサムはお世辞です.(*^_^*)
>>5
bashでもkill %1とかできますよ。逆に、jobidって、どのシェルの組み込みコマンドでしょうか?

killallなんてのがあります。これも、場合によっては便利です。

>>6
TTYが切れたら、そのプロセスもそのうち死んじゃいません? ものによるのかな。
> 9
sshでremoteにloginしてviで編集中とかに、回線が切れたりした時の復帰とか。
この場合、短時間であればviって放置で死にませんよね?逆に長時間だと切れたりするんでしたっけ?
SIGHUPですか。ついこのあいだも同じ間違いをしましたのに、もう忘れていました。

>>10
bashにjobidコマンドがないということは標準的な/bin/shの機能ではなく、そのOSの/bin/shの独自の拡張かなぁと思うのです。OSは何でしょう?
>>14
ありがとうございます。で、試そうと思ったのですが、Debianではashの代わりにdashを使え、みたいになっていました。
http://packages.debian.org/etch/ash
http://packages.debian.org/etch/dash

なのでdashを試してみたのですが、jobidコマンドはありません。むぅ。
$ jobid
はashのみですが、
$ jobs
は、ほとんどのshellでいけるかと。
> 13 14

FreeBSDです。
#たしか、NetBSDでもmanしたような気が。BSD野郎なもんで

「ashってなに?」と調べていたら、力尽きて寝てしまいました。遅くなってスンマソ
まだまだ、知らないことが一杯です。
>hoge_01.sh
>hoge_02.sh
>...
>
>などと連番のファイルがあったとき、一時的にまとめてリネームするには
>いいでしょうか?
>
>hoge_01.sh_old
>hoge_02.sh_old
>...
>
>というような結果を得たいのです。

for i in *.sh
do
mv ${i} ${i}_old
done

でいいんじゃない?
キレイじゃないけど...
$ echo *.sh|while read i;do echo ${i}{,_old};done
$ find . -name "*.sh" -exec mv {} {}_old \;

違う書き方で書いてみたかっただけ。
>26
少なくともDebianでは、/bin/shはbashとはなりません。そんなことをすると、/bin/shとしてインストールできる他のシェルを選択する自由がなくなります。たまたま、/bin/shの実体がbashになっているだけです。

また、パッケージのインストール時に実行されるスクリプトがbash独自の機能を使っている場合はバグ扱いとなります。

Debianは特別だとして、他のOSでは/bin/shはシステムのあらゆる部分で使われているので、標準で入っているものを取り替える気はしないですね。bashスクリプトを書きたければ明示的に示せばいいだけですし。
横からすいません。ちょっと気になったので・・・

>その場合、bashにしろGNUmakeにしろBSDmakeにしろPerlにしろ、
>そういう相当普及した互換レイヤが存在する/すんなり入れられるのだから、
>それに依存してしまうのがいいと思います。

そういう意見も分からないではないです。先進的に依存していく方が合理的なコードに
なる可能性は高いとは思うんですが・・・

ただ、コンシューマが製品をインストールするときに、「この手順ならまず大丈夫」って
いうガイドラインみたいなものも必要かと思います。
たぶん、Railsの成功ってのは、そういう部分だったりするような気がしますし、RPMが
開発されて、Linuxの普及が加速したのも事実じゃないでしょうか?

ただ、個人的には、「Bash標準で早く決めちゃってくれよ」と思ったりしてますけど。w



ログインすると、残り17件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

#!/bin/sh 更新情報

#!/bin/shのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング