- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/20(月) 12:07:26.41 .net]
- シェルスクリプトの総合スレです。
□お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。 src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆーな □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも awkまたはperlの方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 □回答者への注意事項: ・シェルスクリプトでの処理方法を質問しているのに、よくわからずに 「そういうのはperl使いましょう」と回答するのはやめましょう。 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。 前スレ シェルスクリプト総合 その25 echo.2ch.net/test/read.cgi/unix/1439563321/
- 201 名前:名無しさん@お腹いっぱい。 [2017/05/20(土) 03:14:17.14 .net]
- シェルはパイプで渡していくと
関数型っぽいけど
- 202 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/20(土) 09:42:17.19 .net]
- 関数型と見るかメソッドチェーンと見るかの違いだな。
- 203 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/20(土) 21:59:01.54 .net]
- >>195
https://invent.life/project/bash-infinity-framework
- 204 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/20(土) 22:19:56.29 .net]
- >>195
オブジェクト指向で書くと暗黙のルールがなくなるの?
- 205 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/21(日) 05:34:32.67 .net]
- >>195
別にシェルが嫌なら同じ処理をプログラミング言語で作れば良いじゃ無い。 LLならそんな手間じゃ無いし。
- 206 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/21(日) 18:05:12.85 .net]
- >>195 はシェルの開発言語のことを聞いてるんだよね?
確かに、たいていのシェルはCで書かれてるし
- 207 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/21(日) 19:34:04.56 .net]
- だんだん分けわからなくなってきたわ
- 208 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/23(火) 14:55:53.34 .net]
- $ls>hoge.txt
だとカレントディレクトリのリストができますけど、 さらに深堀りして、そこにあるフォルダ(ディレクトリの中身)も表示させるには どうすればいいのでしょうか? それから、 フォルダかファイルの名前 ディレクトリ名(/Users/namae/nanntyaca/hogehoge.txt) のようなふうに二つを並べて吐き出させたいのですがどうすればいいでしょうか?
- 209 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/23(火) 15:04:02.31 .net]
- >>205
find . -type f > hoge.txt
- 210 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/23(火) 15:30:08.76 .net]
- >>206
ありがとうディレクトリのリストができました。 ディレクトリのリストから、htmlのリストを作ろうとすると、どうするのが いいのでしょうか?クリックすると当該ディレクトリに飛ぶようにしたい だけなのです。考えていたのはtexのファイルにするということなのですが。
- 211 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/23(火) 15:38:50.01 .net]
- ハイパーリンク作るまでやるならshの範疇じゃない気がするが
なんでも聞かずに少しはぐぐったらどうよ
- 212 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/23(火) 16:05:32.00 .net]
- ありがとうございます
ぐぐります
- 213 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/25(木) 08:52:58.76 .net]
- w3m . -dump_source >dir.html
- 214 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/26(金) 02:49:12.98 .net]
- >>210
テキストファイルをhtmlにするには拡張子を変えただけでいいらしいです。 >>210さんが教えてくれてのはhtmlをtxtファイルにするための ものだと思います。markdownでリストを作ろうと思います ありがとうございました
- 215 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/26(金) 03:27:01.73 .net]
- 横から
Content-type: text/html htmlはtextの中でどう書くかというルールに過ぎない 拡張子なんてのはexplorer.exeとかのソフトがどのアプリケーションソフトを起動するかのヒント程度 名前などどうでもいい w3m . -dump_sourceは、.(このディレクトリ)をhtmlで書き出せ、と命令してる
- 216 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/05/26(金) 07:39:50.94 .net]
- >>210さん
やりたかったことがそのままできるコードを教えてくれてありがとうございます。 それなのに申し訳ありません。>>212さんが教えてくれるまでその意義をわからず、 失礼なことを書きました。 >>212さん 本当にありがとうございます。
- 217 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/02(金) 10:47:53.61 .net]
- シェルスクリプトの本で、こんな便利なことができるという感じの
スクリプトを紹介するような感じでできてる本というのでお薦めの本は あるでしょうか?
- 218 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/02(金) 11:25:57.91 .net]
- >>214
クックブック ……ああでもあれはbashだったか
- 219 名前:sage [2017/06/02(金) 20:17:29.65 .net]
- (head ; tail ) < file
で、先頭10行・末尾10行が出るのはどういう仕組み? FreeBSD+ash、bash で確認。 man にはそれらしい記述がないように見える。
- 220 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/02(金) 21:17:20.29 .net]
- ちなみに GNU coreutils の head, tail だと
seq 10 | { head -1; tail -1; } 1 となる。以下の場合は seq 10240 | { head -1; tail -1; } 1 10240 となる。これは head コマンドが一定量のデータをバッファリングした まま処理を終了してまうから。BSD系のコマンドでは未使用なデータは パイプバッファに戻してくれるので tail コマンドで読み出すことができる。
- 221 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/03(土) 15:49:14.51 .net]
- ともにデフォルトが10行だからじゃないの?
- 222 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/04(日) 01:26:27.62 .net]
- >>215
クックブック注文しました ありがとう
- 223 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/05(月) 08:12:28.10 .net]
- どうやって実現してるの?パイプではseekできないと
ずっと思ってた
- 224 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/05(月) 10:37:40.02 .net]
- tailのソース読んでみたら?
- 225 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/06(火) 12:55:43.92 .net]
- >>217
BSDは知らないけど、普通stdioで読む単位は4096byteとかだから headがそれを読んでexitした場合残りをtailが読むことになる 入力データが4096byte以下ならheadしか受け取れないが、大きければ headとtailがそれぞれ入力を受け取れる パイプに戻すとかいうインタフェースはunixにはない
- 226 名前:213 mailto:sage [2017/06/13(火) 13:42:47.20 .net]
- どうもです。
要は head と tail でディスクリプタを共有してて、未 read の部分を tail が読んでいるんだと思うんだけど、 親子じゃないプロセスでディスクリプタ共有なんてできるんでしたっけ、と思って驚いた (できてるから、できるんだろうけど)。 ちなみに tcsh でもできた。 ただ、下記の ★1 と ★2 で結果が違うのはどうしてなんでしょう。 コマンドかファイルかで、stdio のバッファリングの違いってあったっけ。 $ seq 100 > seq100.txt $ seq 10024 > seq10024.txt $ cat seq100.txt | { head -1 ; tail -1 ; } # ★1 1 $ { head -1 ; tail -1 ; } < seq100.txt # ★2 1 100 $ cat seq10024.txt | { head -1 ; tail -1 ; } 1 10024 $ { head -1 ; tail -1 ; } < seq10024.txt 1 10024
- 227 名前:213 mailto:sage [2017/06/13(火) 13:51:01.95 .net]
- >>217
> ちなみに GNU coreutils の head, tail だと > seq 10 | { head -1; tail -1; } > 1 > となる。 なお、FreeBSD でも $ jot 10 | { head -1; tail -1; } 1 でした。 head・tail で共有しているのはディスクリプタだけであって、 stdio バッファの共有はしていないので、戻すってのが ungetc(3) 的な ものを指しているのであれば、戻したとしても tail がそれを読めるわけでは ないと思っています。
- 228 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/13(火) 15:00:33.86 .net]
- >>223
seq 100は4096バイト以下だから。 seq 1042でtail -2 したら切れ目がわかるかと。
- 229 名前:213 mailto:sage [2017/06/13(火) 15:13:53.06 .net]
- ★1も★2 も seq 100 なのに、なぜ結果が違うのか、というのが疑問なのであります。
- 230 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/13(火) 15:15:44.72 .net]
- ファイルディスクリプタがプレーンファイルならlseekするから
- 231 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/13(火) 15:19:58.75 .net]
- ごめん、mmapだった
- 232 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/14(水) 09:15:41.39 .net]
- >>226
要するに>>227の通りなんだけど ⭐1の書き方の場合、標準入力がパイプになるので(lseekできないので)tailには何も渡らない ⭐2の場合標準入力は通常ファイルseq100.txtなのでtailはlseekして読み直すから読める
- 233 名前:213 mailto:sage [2017/06/14(水) 10:53:46.67 .net]
- ありがとうございます。
https://svnweb.freebsd.org/base/head/usr.bin/tail/tail.c?revision=314436&view=markup#l227 で lseek で先頭に戻るってのが成功するか否か、ってことですね。
- 234 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/06/14(水) 11:09:43.34 .net]
- head -1 じゃなくて read を使ってこんな事をしてたり
df -h | { read h; echo "$h"; sort -k5,5gr; }
- 235 名前:名無しさん@お腹いっぱい。 [2017/07/01(土) 20:45:46.61 .net]
- 流石に上手いわ
- 236 名前:名無しさん@お腹いっぱい。 [2017/07/01(土) 23:39:20.14 .net]
- >>231
惚れる。UNIX の基本コマンドだけじゃん
- 237 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/05(水) 17:14:04.26 .net]
- >>231
やるやん(´・ω・`)
- 238 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/08(土) 09:49:05.30 .net]
- >>223
子同士だから親から引き継いだ同じものを共有してる
- 239 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/15(土) 18:10:48.03 .net]
- Eclipse上でシェルスクリプトを動かしたいんだけど、どのサイトを参考にすればいいですか?
- 240 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/15(土) 18:28:08.93 .net]
- site:2ch.net 付けてググれ
- 241 名前:名無しさん@お腹いっぱい。 mailto:age [2017/07/31(月) 07:52:04.50.net]
- # 使用しているのは GNU/Linux なので微妙にスレチかもしれないです。
GNU/Linux では /bin/sh が /bin/bash へのシンボリックリンクになっています。 私が利用している Fedora 26, Linux Kernel 4.11.11 では bash$ readlink -e `which sh` /usr/bin/bash でした。(Fedora では /bin 全体が /usr/bin へのシンボリックリンクです。そういう方針です) ファイルシステム等と共にシェルスクリプトの高速化を図ろうと, Bourne Shell 互換で GNU bash より低機能で処理が高速な GNU dash を /bin/sh へのシンボリックリンクにしました。 bash# rpm -qa | grep -E "^dash" dash-0.5.9-2.fc26.x86_64 bash# unlink `which sh` && ln -s /usr/bin/dash /usr/bin/sh 再起動すると Xorg およびディスプレイマネージャは正常に起動したのですが, ログイン後デスクトップ環境(Xfce4)が起動しません。 エラーログを取得しようにもコンソールl(/dev/tty1とか)にさえログインできず, 結局外部から /bin/sh を /usr/bin/bash に割り当て直して無事ログインできました。 原因はデスクトップ環境を構築しているシェルスクリプトのどこかに bash 独自の機能を要する文法があると思われます。 そこで質問なのですが,実際にログインプロセスを踏まずにそれを再現できるシェルスクリプトの作り方を教えてください。 長くて申し訳ないです。よろしくおねがいします。
- 242 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 07:59:41.19.net]
- 内緒で妻のパソコンでインターネットして
ヌードとかHな写真を見まくっていたのですが、なんと bネにかの表紙に血ゥていたエロ画荘怩ェパソコンの血繧に 表示されたままになって元に戻せません! 前はプーさんの画像だったのに、今はアソコにバイブを挿した豊丸の画像です・・・。。 再起動しても表示されたままなんです。 早く直さないと妻が夜勤から帰ってきてしまします!(看護婦なので・・・・) 至急助けてください!!! OSはウィンドウズXPです。 よろしくお願いします。
- 243 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 08:49:19.54.net]
- >>239
金属バットでPCフルスイングすれば?
- 244 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 08:51:37.14.net]
- ここに到達する知識があるならgoogleで検索すれば見つかるだろうに
- 245 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 08:57:00.00.net]
- >>238
再現する方法を模索するのではなく、再起動せずに切り分けすればいいだけでは? tty でログインできなかったって点からすると、/usr/bin/sh を差し替えた後に再起動せずに su - 一般ユーザ名 でテストするのが一番手っ取り早そう。 display-manager(gdmや同等のソフト) を停止した状態で tty でログイン(安全をみて tty1 と tty2 など複数個所でログイン済にしておく)、 /usr/bin/sh を差し替えて再起動せずに display-manager を起動してログインテストすればいいんじゃないでしょうか。
- 246 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 09:07:15.67.net]
- >>239
これは履歴とかキャッシュ消せないだろうからどうせバレる
- 247 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 09:10:25.45.net]
- >>238
Linux板へ
- 248 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 09:10:52.08.net]
- >>239
懐かしコピペだな
- 249 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 11:49:07.69.net]
- >>242
ありがとうございます。やってみます。 ご迷惑かもしれませんが,解決を見たら報告します。
- 250 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 11:54:40.49.net]
- >>240
ありがとうございます。やってみます。 ご迷惑かもしれませんが,解決を見たら報告します。
- 251 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 15:19:17.23.net]
- >>238
checkbashismsが使えるならそれでBashの機能の有無を確認出来る ttp://wiki.archlinuxjp.org/index.php/Dash
- 252 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/07/31(月) 16:15:55.29.net]
- /bin/shを差し替えるなんてFedora側で想定した使い方じゃないんだから
そもそもそんなことやっちゃいけない
- 253 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 02:25:49.77 .net]
- >>248
ありがとうございます。 5000 箇所くらい不適合が見つかりました。 パッケージ管理されているシェルスクリプトも多くあり, 全部直すとシステムの破壊も(今更かもしれないですが)心配なのでやはり bash のままにしようかなとも考えています。 >>249 その通りなんですが dash は bash の4倍早いと聞いたのでつい……。
- 254 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 02:59:57.01 .net]
- >>250
autoconfのconfigureで5-10%速いくらい https://lists.fedoraproject.org/pipermail/devel/2014-October/202891.html SysVinitの昔ならともかくsystemdの今では関係ないだろうけどね
- 255 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 03:05:36.12 .net]
- >>250
chshだけでもしとけば
- 256 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 08:24:31.41 .net]
- >>250
4倍速いなんて誰が言ってたの
- 257 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 09:51:33.66 .net]
- /bin/sh置き換えるとか奇形児かよ
- 258 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/01(火) 10:19:55.09 .net]
- configureで5-10%速いなら4倍どころじゃないだろうな
- 259 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/02(水) 20:07:41.14 .net]
- >>254
debianはそういうとこあるぞ
- 260 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/03(木) 07:34:52.42 .net]
- あれは必死に直した結果達成したもので、同じような努力をそのdistroで
やらないとできない そういやFreeBSDも昔base systemからperl排除するという大きな仕事を やってたなあ
- 261 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/03(木) 09:32:35.46 .net]
- で、「4倍速い」のソースどこよ
- 262 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/03(木) 09:35:10.81 .net]
- 俺
- 263 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/03(木) 21:23:18.47 .net]
- シャア専用シェル
- 264 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/04(金) 03:14:55.27 .net]
- シェルから特定のプログラムの標準入力にデータを流すにはどうしたらいいでしょうか。
何がしたいかというと、 stdinからのデータを処理するIPCで、サーバーサイドのプログラムに シェル側からstdinに流してレスポンスがちゃんとできているかをチェックしたいのです。 サーバープログラムは stdin をistreamで処理するように組んでおり、 stdinで入ってくるデータはEOFで一区切りとし、EOFを検出後に EOFフラグをクリアして、再度stdinにデータが流れてくるまでブロッキングするというループになっています。 本来はクライアントサイドからstdinへデータを流しますが、 サーバーサイドだけで簡単にチェックするために、 サーバーサイドはmy-server.elfとし、 $ ./my-server.elf で起動状態にしておきます。 ここに対して、 コマンドライン上から テキストデータ+EOFを何度か送る方法はないでしょうか? cat hoge | ./my-server.elf とかだと、1回しかテストできないので、どうしたらいいでしょうか。 my-server.elfのプロセスIDはわかるので、そこに対してデータを送る方法が
- 265 名前:あれば教えてください。 []
- [ここ壊れてます]
- 266 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/04(金) 04:14:32.69 .net]
- 移植性がよくわからないけど
cat hoge > /proc/<pid of server>/fd/1
- 267 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/04(金) 08:14:54.70 .net]
- EOFってクリアできるものなの? よくわからんが
$ mkfifo /tmp/foo $ exec < /tmp/foo $ exec ./my-server.elf で cat hoge > /tmp/foo とかどうよ
- 268 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/04(金) 13:23:10.99 .net]
- >>261
EOFってstdinの送信側がcloseしたときに送られるんじゃないの? それ実は再コネクトしてたりしない?
- 269 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/06(日) 01:34:21.08 .net]
- >>261
> コマンドライン上から テキストデータ+EOFを何度か送る方法はないでしょうか? テキストデータにEOF(^D)を入力するとか ^DはCtrl+V、Ctrl+D https://en.wikipedia.org/wiki/End-of-Transmission_character
- 270 名前:名無しさん@お腹いっぱい。 [2017/08/09(水) 11:18:15.17 .net]
- 1<br>2<br>3<br>4<br>
を 1 2 3 4 にシェルで置き換えるコマンド教えれ 今viで開いて置き換えてます・・・
- 271 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/09(水) 11:21:03.77 .net]
- >>266
sed
- 272 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/09(水) 11:22:28.73 .net]
- sed でもなんでもいいじゃん
- 273 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/09(水) 13:07:15.54 .net]
- あえてヘッドレスブラウザを使ってみよう
- 274 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/09(水) 13:07:21.78 .net]
- echo '1<br>2<br>3<br>4<br>' | tr '<>' '\n\n' | fgrep -v br
- 275 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/09(水) 14:41:10.39 .net]
- ありがとうございます
sedで出来ました というか所定の文字列(今回は<br>)を改行に置き換えることと 改行を所定の文字列に置き換えることを混同していました たしか後者はsedなどでできずperlとかでやった覚えがあります まったくもって私の勘違いでした・・・
- 276 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/09(水) 14:49:33.52 .net]
- unhtmlだと改行入らないっけ
|w3m -dump
- 277 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/13(日) 15:47:35.48 .net]
- macのファイル名に使われるエンコーディングてutf-16だったんだね
てっきり、utf-8だと思ってた tama-san.com/hfsplus/ んで、次のOSでは非正規化になるみたい https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html これで少し楽になれそう
- 278 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/13(日) 15:56:24.85 .net]
- 内部表現はutf-16
ターミナルで扱うときはutf-8
- 279 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/13(日) 18:10:53.30 .net]
- 知らなかった
ありがとう
- 280 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/20(日) 22:32:53.01 .net]
- シェルスクリプト とはほとんど関係ないんだけど,X 使ってる時,ターミナルエミュレータに ファイルマネージャの「ファイル」や「フォルダ」を D&D したらその絶対パスが入力されるんだな。
これ今迄知らずに手入力してた。
- 281 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/20(日) 22:38:57.86 .net]
- なんかしらんけど、本当だ(´・ω・`)
- 282 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/20(日) 22:39:12.28 .net]
- これどういう原理なんだろ
- 283 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/20(日) 23:03:34.71 .net]
- X 使ってないから分からんが、Windows でエクスプローラからコマンドプロンプトにドラッグ&ドロップするとファイルパスが入力されるのと同じ機能かな。
意外と知らない人もいるみたいだけど、便利だよね。
- 284 名前:名無しさん@お腹いっぱい。 [2017/08/21(月) 01:53:29.93 .net]
- でもXってマウスすべるよな
- 285 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/21(月) 08:54:21.72 .net]
- Windows でも確認できた。へー,結構便利だな。
- 286 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/21(月) 10:52:29.07 .net]
- なぜ関係ない話をここでやるの
- 287 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/21(月) 17:33:16.40 .net]
- じゃあ関係ある話提供してください。
- 288 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/
]
- [ここ壊れてます]
- 289 名前:21(月) 17:38:48.75 .net mailto: どうでもいいけどそれずっとsakuraエディタ使ってやってたわ
エディタ上にファイルペーストすると絶対パスに変換される [] - [ここ壊れてます]
- 290 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/21(月) 18:31:57.12 .net]
- どうでもいいなら書き込むな
- 291 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/21(月) 19:04:04.21 .net]
- じゃあどうでもよくない話提供してください。
- 292 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/21(月) 19:13:51.68 .net]
- DEの機能じゃないの
ファイルマネージャー使わないが
- 293 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/22(火) 09:14:59.98 .net]
- Terminology「ガタッ(呼ばれたか)」
- 294 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/22(火) 13:27:24.37 .net]
- Terminology って何がすごいの? 画像の表示なら xterm ですら可能なのに。
- 295 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/22(火) 18:53:12.44 .net]
- lsとかした後ターミナル内でのD&Dとかの変態操作
動画再生と動画壁紙の無駄機能 すごくはない
- 296 名前:286 mailto:sage [2017/08/23(水) 03:10:27.50 .net]
- ターミナル内で D&D できんのか。そりゃすげえ。
- 297 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/29(火) 10:07:33.36 .net]
- unix プログラミング環境という本の問題でpickというプログラムを作ったんだ。
引数ごとに出力するかを対話して、"y"が押されたものだけ出力するという単純なもの。 --- $ pick a b a? y a b? n $ --- 問題ではさらに、「引数が無かった時は標準入力を読みに行くようにせよ」と続く。 まあ、パイプで挟まれたりしても問題なく使えるようにしろってことなんだと思う。 で、以下の様に書いて、問題なく動いたんだけど、 あまりシェル書いたことないもので・・・変な書き方してないかとかコメント頼みます。 --- exec 10<&0 11>&1 0<&2 1>&2 input='echo "$@"' if [ $# -eq 0 ] ; then input='cat <&10' fi for i in `eval $input` do echo -n "$i ? " read response case $response in y*) echo $i >&11 ;; esac done ---
- 298 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/29(火) 14:45:14.34 .net]
- シェルじゃなくてシェルスクリプト
- 299 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/29(火) 20:34:15.21 .net]
- >>292
その本知らないけど、標準入力を読み切ったあとをキー入力とするより read response < /dev/tty でキー入力する方が一般的じゃないかな
- 300 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/08/30(水) 10:04:26.25 .net]
- >>294
実は、vmware上のlinuxにテラターム使ってテストしてたんだけど、 (unixと書いてあるのにスマン) その時の端末のデバイスファイル?とやらが/dev/pts/0だったのよ。 `tty`でもパイプ使ってると「あいまいです」みたいに怒られちゃって、 苦し紛れに&2を使ってしまった。。 接続端末のデバイスファイルをいつでも取得できる方法ってあるのかな?
|

|