X



シェルスクリプト総合 その29

■ このスレッドは過去ログ倉庫に格納されています
0285デフォルトの名無しさん
垢版 |
2019/04/13(土) 16:27:29.48ID:i5T2wQ7z
>>284
wait()すりゃいいんだよ。
普通はinitが拾ってくれるんだが、誰にでも好き嫌いはあるということだろう。
0286デフォルトの名無しさん
垢版 |
2019/04/13(土) 16:33:30.75ID:mImzJn5T
>>280
>コマンドがINTシグナルで終了した場合、シェルが擬似的にシグナルハンドラ呼んでるっぽいかな(もしくは自らにINTシグナル出してるのかな
違うか。control-cでのINTシグナル送るやつの文献ってどこぞにあるかなあ
0287279
垢版 |
2019/04/13(土) 17:05:08.41ID:blG/UTRx
Ctrl+C が、子プロセスやパイプラインのジョブグループに、

どのように伝達されていくかとか、難しい
0288デフォルトの名無しさん
垢版 |
2019/04/13(土) 17:21:22.57ID:6byp94bf
いろいろ間違っていた。訂正する。

まずCTRL-Cは関係なさそう。実は正常な動作でも(プログラム実行中に)ゾンビができることがあった。
ゾンビができると今は無限ループ状態になるので気づいたが、ちょっと前まではプログラムの構造上、
ゾンビを放置して正常終了していたと思う。zshではあまりテストしていなかったから気づかなかった。

バックグラウンドプロセスが関係あるかないかはよくわからない。
何回か動かしているがバックグラウンドプロセスを使用しない場合は今の所再現していない。

あとなんかWSLとのからみな気がしてきた。
速度が違うから断定は出来ないがLinuxだと再現しない。

今の所、WSL環境にて、zshで、バックグラウンドプロセスを使用し、
その中でパイプを使った処理を行うと、まれにゾンビプロセスができる。
0289デフォルトの名無しさん
垢版 |
2019/04/13(土) 17:27:02.88ID:i5T2wQ7z
>>286
シグナル一般の話ではなくてttyの話だったら、詳解Unixに載ってた気がするが、
当然そのくらいは読んでるよね。
0290デフォルトの名無しさん
垢版 |
2019/04/13(土) 17:36:42.95ID:mImzJn5T
>>287,289
なるほど
すまん、読んでない。遠い記憶では読んでいたような気もするが忘れたので読んでない
0291デフォルトの名無しさん
垢版 |
2019/04/13(土) 17:43:50.87ID:6byp94bf
再現コード出来た。このコード、なにか問題有る?

これをWSL+ZSHで実行すると、人目につかず永遠とbcコマンドで1+1を計算し続け、
CTRL-Cで停止するときにbcコマンド含めたプロセスグループ全体をkillする(はず)
これをやるとbcコマンドがゾンビ化する。(Linuxだとしない)

#!/usr/bin/zsh

int() {
echo kill
kill -TERM 0
echo killed
exit 1
}
trap 'int' INT
trap ':' TERM

worker() {
while :; do
echo '1+1' | bc > /dev/null
done
}

for i in $(seq 16); do
worker &
done

echo wait
wait
0293デフォルトの名無しさん
垢版 |
2019/04/13(土) 17:54:41.69ID:6byp94bf
dash、bashでは再現しない。kshでも再現した。
いずれもWSLのみ。これもうWSLの問題だろ・・・
きっとWSLのバグをzshとkshが踏んじゃったんだな
0295デフォルトの名無しさん
垢版 |
2019/04/13(土) 18:09:57.29ID:6byp94bf
次のWindows 10のリリースで治ってんじゃないですかねー
もういいか

Zombie zsh processes left behind that consume 8 % CPU each
https://github.com/Microsoft/WSL/issues/3940

Killing a defunct zombie leaks the zombie process forever
https://github.com/Microsoft/WSL/issues/3741

https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-18267
Fix issue where zombie process may not be reaped and remain indefinitely.
0296デフォルトの名無しさん
垢版 |
2019/04/14(日) 14:12:09.49ID:uU4FE3J6
read -r text <<HERE
printf [%s]\n it's a "s'm'a'l'l 'w"o'r"l'd"
HERE
$text

↓出力

[it's]
[a]
["s'm'a'l'l]
['w"o'r"l'd"]

この仕様、うまくすればなにかに使えそうな気がしている。
文法エラーにもならずevalとはまた違った挙動だ。
とゆうかどういう仕様なんだろう?
0297デフォルトの名無しさん
垢版 |
2019/04/14(日) 17:50:16.12ID:21MN1CXY
$ cat b.pl
#!/usr/bin/perl -w
print("$_\n") foreach @ARGV;
$ cat c.sh
#!/bin/bash

IFS=+
./b.pl a b c
./b.pl a+b+c
while read -r v ; do $v ; done <<EOF
./b.pl a b c
./b.pl+a+b+c
EOF
$ ./c.sh
a
b
c
a+b+c
./c.sh: 行 6: ./b.pl a b c: そのようなファイルやディレクトリはありません
a
b
c
$ # うん、なかなか面白いね。どうしてこうなるかは man に書いてあるよ。
$ # 簡単に言うと、単語の分割というのは最初に行われるものと
$ # 変数が展開された後に行われるものがあるんだ。
$
0298デフォルトの名無しさん
垢版 |
2019/04/15(月) 17:41:03.59ID:ZXb+3x2v
シェルスクリプト(対話操作含め)が実行される手順って結構複雑な割に他の言語よりずっと単純だから
理論から実践(この場合はシステム処理とか?)への、かなり良い足掛かりになるよね。
0299デフォルトの名無しさん
垢版 |
2019/04/21(日) 01:20:29.51ID:Has+aDs1
http://www.sample/{01..10}.jpg
これが書かれたtxtを読み込んでブレース展開して出力する方法ないです?

$ printf "%s\n" < foo.txt
適当にこうやっても上手く行かなくて
0305デフォルトの名無しさん
垢版 |
2019/04/21(日) 10:59:40.33ID:Has+aDs1
>>304
内側のリダクレクトが何かと思えば $(cat file)の変形があったとは
複数行も対応してるしこれなら行けそうですわ
0307デフォルトの名無しさん
垢版 |
2019/04/22(月) 02:03:07.74ID:KyfckjPA
>>306
これいいね!
……正直,実際に使う機会は少なそうだけど
シェルの処理をしっかり把握してないと思い付かない回答。
0308デフォルトの名無しさん
垢版 |
2019/04/22(月) 11:54:54.98ID:c8JzoHXu
例えばさ、

bash -n -c 'a=(a b c)'
↑これはbashとして正しい文法だけどさ

sh -n -c 'a=(a b c)'
↑これは文法エラーになるじゃん? 実行していなくても

これみたいに、実行してないのにあるシェルではOKで
別のシェルではNGみたいな文法って他に何かしらない?
0310デフォルトの名無しさん
垢版 |
2019/04/22(月) 15:47:58.78ID:8XF5nS5J
eval 'printf "%s\n" '$(cat foo.txt)
これprintfをシングルクォートで囲まないと改行されないのね
http://www.sample/01.jpgnhttp://www.sample/02.jpgnhみたいな結果ばかりでちょっと悩んだ
zsh使ってないけどこれはforの後の二重括弧に空白が必要だとかなんとか
{には空白がいるのにfor((が通るbashの方が不自然なのか
0312デフォルトの名無しさん
垢版 |
2019/04/22(月) 18:36:38.02ID:oyNQbI7u
\n の処理をだれがいつやらかすのかってとこかな。printfにやらせたいprintfに \n のまま渡さなくてはという感じ
eval printf "'%s\n'" $(cat foo.txt)
eval printf '%s\\n' $(cat foo.txt)
0313デフォルトの名無しさん
垢版 |
2019/04/22(月) 23:58:52.60ID:htDMK2AO
そもそもなぜ eval を使うのかというと、コマンドラインの解釈において
ブレース展開がコマンド置換より前だから
コマンド置換してからブレース展開するためには
eval を使って解釈を最初からやり直す必要があるためで
しかしながら printf と "%s\n" にはその必要がないのだから、つまり
printf "%s\n" $(eval echo $(<foo.txt))
でいいんじゃないかな。
0314デフォルトの名無しさん
垢版 |
2019/04/23(火) 08:44:15.00ID:q7kwqzjj
ダブルクリックで実行できるのとできないシェルスクリプトの違いって一体
whileとcaseで簡易メニュー作ってたんだけどダブルクリックしても画面に何も出ない上に
起動されたbashがCPUがかなり食ってた
無論端末から実行はしっかり通る
ls結果を外部保存するような単純な奴はダブルクリックでも正常通りなんだけど
0316デフォルトの名無しさん
垢版 |
2019/04/23(火) 18:19:48.00ID:/EY0Mv6x
>>311
マニュアル嫁
つーか実行すれば一目瞭然だぞ
……と思ってやってみたらexportはオプション成しで起動すると
export -pと同じ動作をするんだね
0317デフォルトの名無しさん
垢版 |
2019/04/23(火) 18:22:18.78ID:/EY0Mv6x
>>314
使ってるGUIシステムがX11なら
x-terminal-emulatorなんかを使って仮想端末を立ち上げてからじゃないと
メニューみたいな端末出力を必要とするものは期待した通りに動かないよ。
0319デフォルトの名無しさん
垢版 |
2019/04/23(火) 21:51:37.02ID:zhMneqp1
模範解答

export -p がどう表示されるかはPOSIXで規定されていますが、
export がどう表示されるかは未定義です。(同じとは限りません)
つまり、exportがどうなるかはシェル毎に異なります。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#export

更にexport -pはbashではPOSIXに反してdeclareで表示されます。
これらは各シェルのマニュアルには書いていません。
0321デフォルトの名無しさん
垢版 |
2019/04/24(水) 08:22:12.86ID:6O+4Q2Ek
bashで abc*が展開できると出来ないときがあって
それをテストするのに
[  "abc*" = 'abc*' ]
とやりたいのにできません
どうやったらできますか?
0322デフォルトの名無しさん
垢版 |
2019/04/24(水) 17:25:06.62ID:bQUFU5ml
>>321
何がどうできないのかよく分からないけどシングルクォートとダブルクォートは
処理が違うから「=」にならないと思うよ
シングルクォート側は文字列なので「abc*」っていう文字列になるけど
ダブルクォート側は解釈されるので「*」にあたるものが存在しないと何もない
状態なので「abc」って文字列になるんじゃないかな
0324デフォルトの名無しさん
垢版 |
2019/04/24(水) 17:42:31.98ID:6O+4Q2Ek
abc*が展開できない時はそのままabc*になるのでそう思って書いてみました
0326デフォルトの名無しさん
垢版 |
2019/04/24(水) 18:32:06.10ID:6O+4Q2Ek
ええです
0327デフォルトの名無しさん
垢版 |
2019/04/24(水) 18:45:29.21ID:6T3A9gnL
ダブルクォートで囲んでも囲んじゃうとglob展開は行われない変数などのようには。(>>322見るとデフォでは??展開できるなんかあっったかなあ)

[ "$(echo abc*)" = "abc*" ]
とかかな
any='abc*'; [ "$(echo $any)" = "$any" ]
0328デフォルトの名無しさん
垢版 |
2019/04/24(水) 19:43:12.00ID:uakSx5ac
日本語がダメな奴と日本語がダメな奴が
初心者同士の会話をしてる。
ついていけない。
0329デフォルトの名無しさん
垢版 |
2019/04/24(水) 19:56:20.38ID:6O+4Q2Ek
>>327
ありがとうございます
echoを使わずできたらお願いします
無理なら諦めます
0330デフォルトの名無しさん
垢版 |
2019/04/24(水) 20:25:30.92ID:6T3A9gnL
>>328
答えてやれよ。マウントとりではなくて。ふたレスもするくらいな
(>>322は正直お前の>>323と同じだが、それだけじゃなというのと、もしかしてもしかしてもしかしてだけど)
0331デフォルトの名無しさん
垢版 |
2019/04/24(水) 20:29:18.25ID:6T3A9gnL
>>329
echoを使わずの条件がわからない。他にもやり方があるけど、複数行にだったり
stackoverflowではなんか凝ったのより ls が人気みたい。見た目でわかりやすからかな
0332デフォルトの名無しさん
垢版 |
2019/04/24(水) 21:08:22.56ID:uakSx5ac
何をやりたいのかわからない。

端末にecho *って入力して
あぁ、展開されましたねって
確認すりゃいいだけじゃんか

なんで[ ]とか使うのか
0333デフォルトの名無しさん
垢版 |
2019/04/24(水) 21:16:12.73ID:6T3A9gnL
>>332
お前が何言っているのかわからない
シェルスクリプトで判断してなにかその後にする部分のことを聞いてきているのだろう。その判断するとこだけを書いているのだろうと読むと思うけど

(日本語どうの言うなら、他人の日本語より自分の日本語を疑った方がいいようなw)
0334デフォルトの名無しさん
垢版 |
2019/04/24(水) 21:29:00.43ID:6T3A9gnL
>bashで abc*が展開できると出来ないときがあって
abc* としても、該当するものがあってglob展開する場合と、該当するものがなくてglob展開しない(出来ない=globのまま)ときがあって
>それをテストするのに
展開できなかった場合はマズいので(とかなんとで)、それをテストするのに
[  "abc*" = 'abc*' ]
>とやりたいのにできません
としてみましたが、思ったようになりません

だよ。たぶんw
0335デフォルトの名無しさん
垢版 |
2019/04/24(水) 22:15:49.65ID:kFXKi6KY
Ruby で該当するファイル数を数えれば?
それが、0 なら、該当なし

p Dir.glob( 'C:/Users/Owner/Documents/*.txt' ).length #=> 0
0336デフォルトの名無しさん
垢版 |
2019/04/24(水) 22:19:13.46ID:uakSx5ac
>>333
お前はさ、なぜこういう質問に至ったかまで考えられてないんだよ。
意味不明なんだよ。

>>334
そう思うやろ?だったら意味不明って気づかなきゃ。

> 展開できなかった場合はマズいので

つまり、現時点で「展開できてる」はずなわけだよ。
展開の仕方を知ってる。
なのに展開できないと言ってる。意味不明だろう?
0337デフォルトの名無しさん
垢版 |
2019/04/24(水) 22:37:08.62ID:6T3A9gnL
>>336
なにを言っているのかさっぱりわからん。意図目的とすることがな。いや後半はまったくわからん、お前の頭の世界の話だけのようで。ちょっと怖いぞw
ただマウントとりたいだけというのはわかるぞw
0338デフォルトの名無しさん
垢版 |
2019/04/24(水) 22:39:35.88ID:6T3A9gnL
読めなかったらのをごまかすためにむちゃくちゃ言っているんだな
うん。そゆことにしとこ。でないとアレだなということで
0339デフォルトの名無しさん
垢版 |
2019/04/24(水) 22:49:53.80ID:uakSx5ac
だーかーらー、いつもどおりのやってるやり方で展開して
それをチェックすればいいだけだろと
0340デフォルトの名無しさん
垢版 |
2019/04/24(水) 23:04:43.57ID:6T3A9gnL
ぜんぜん「だーかーらー」でもなんでもないな。お前の言っていることはわからん
どうも自称初心者じゃない自称日本語ダメじゃない人の自分の脳の世界でなんか言ってるとしか見えない

お前の言う初心者の ID:6T3A9gnL は >>327 ので不満があるようだがそれでも答えになってるらしいぞ

お前の変な言い分はお前のためでしかなく、他に対する目的も意味もない。マウントとりたいだけのお前には意味があってもな。マウントとりたいから延々続くのか?
0341デフォルトの名無しさん
垢版 |
2019/04/24(水) 23:06:17.58ID:6T3A9gnL
誤 お前の言う初心者の ID:6T3A9gnL は
正 お前の言う初心者の ID:6O+4Q2Ek は
なんかすまん
0342デフォルトの名無しさん
垢版 |
2019/04/24(水) 23:14:58.44ID:uakSx5ac
> お前の言う初心者の ID:6T3A9gnL は >>327 ので不満があるようだがそれでも答えになってるらしいぞ

だからなんなのか知らんが、お前ら、いつもどおりの展開ってecho使ってんのか?
使ってないだろ。いつもどおりの使えばいいだけなのに、
悩んで(?)別の方法模索してるから、意味不明だって言ってるんだよ。
質問者にも回答者にも
0343デフォルトの名無しさん
垢版 |
2019/04/24(水) 23:22:52.75ID:6T3A9gnL
むちゃくちゃww
自分で>>332って書いているのに
言うにことかいて「だからなんなのか知らんが」だってwwwもろマウントとりたいだけ、マウントとり失敗してわけわからんだけだな
0344デフォルトの名無しさん
垢版 |
2019/04/24(水) 23:54:51.80ID:uakSx5ac
展開されるかどうかの確認はそれでいいし、
プログラムでならいつもどおりのやり方で展開すればいい
何をやりたいのかわからないのに、どちらの話かわかるわけないだろ
どちらにしろ「は?」なわけだが
0346デフォルトの名無しさん
垢版 |
2019/04/25(木) 00:02:54.32ID:zUwJ78d6
っていうか、正しいやり方知らんのか?
echo使って検査するんじゃないぞ(それじゃできない)
0347デフォルトの名無しさん
垢版 |
2019/04/25(木) 00:05:34.10ID:zUwJ78d6
それじゃできないっていうのはコレな

> abc* というファイルが実際にあるというというのは除外でいいのね?

abc* というファイルが実際にあることも考慮するやり方をするべき
そうすれば正解にたどり着く
0348デフォルトの名無しさん
垢版 |
2019/04/25(木) 00:16:01.39ID:2wE9GZDh
ダメな場合もあるのはわかって聞いているんだけど。本人がいいっていったからそれに合わせてだよ

だれかみたいに「すべき」とか強要するつもりも知識自慢したくてたまらないとかもないからな。その最後のといい、なんか偉そうにしたいのね、質問者の意図とか読まずに、知識自慢するためのw質問者の他の情報も引き出そうともせずに

shopt使うとかいう知識自慢だったら笑うぞ。別にabc*という実ファイルがあった場合でものshopt使わずにの方法もあるけどな
0349デフォルトの名無しさん
垢版 |
2019/04/25(木) 00:21:59.00ID:zUwJ78d6
本当に差があるやつとの会話は疲れるw

> bashで abc*が展開できると出来ないときがあって
展開でするやり方知っってるよな?それ使え

> それをテストするのに
展開できないことのテストはいらん

お前が知ってるはずの、展開するやり方を使って、
-f (もしくは -d や -e 等)で、その名前の
そのファイルが実査に有るかどうかを調べるだけ

shoptとかもしらん
0351デフォルトの名無しさん
垢版 |
2019/04/25(木) 00:34:11.93ID:2wE9GZDh
やっぱり、まだわかってないんだな、「展開〜」という質問を
shoptとかもしらん....
-f とか、まさかそんな「当たり前の」こと言い出すとは
まさか「その程度」だとは思わなかったわっ。なんだろこれw
0352デフォルトの名無しさん
垢版 |
2019/04/25(木) 01:03:28.37ID:zUwJ78d6
× shoptとかもしらん
○ shoptとかもいらん

なんで当たり前の正解を言ったら
お前悔しがってんの?w

知識自慢したのお前じゃん
そして「は?」の意味わかっただろ。
全く見当違いのことをやろうとして、
全く見当違いの解答をしてるんだよ。
クソガキどもが
0353デフォルトの名無しさん
垢版 |
2019/04/25(木) 01:09:13.03ID:2wE9GZDh
そりゃ、お前が悪い。shoptもな
なんかもったいぶってるだけでだからな。自覚がないのか?さんざん偉そう俺は初心者じゃないってだけの、質問から外れたことばっかり言っている
お前が>>349>>352で書けば終わってることだからな

俺は別にお前みたいな知識自慢したくてなんてないぞ。おまえがさんざん俺偉いというだけのような&「そうすれば正解にたどり着く」とかうやむやなこと言うからだろうに

とうとう、「クソガキども」のお言葉いただきましたっ。なんだじじいかw自称他人を自分より劣ると言える
0355デフォルトの名無しさん
垢版 |
2019/04/25(木) 01:15:09.23ID:zUwJ78d6
だから何をやりたいのかわかったのは
それ以降のレス読んでからだろうが

意味不明だし、馬鹿がクソな回答しやがるし
ほんと低い
0356デフォルトの名無しさん
垢版 |
2019/04/25(木) 01:17:21.45ID:2wE9GZDh
>だから何をやりたいのかわかったのは
イミフ。おまえもたいがい日本語ダがメだぞ?w いままでのレスの数々でも

やっぱり「俺高いお前低い」とは言いたいのね。なんでそう言いたいのか自分に問いてみような
0357デフォルトの名無しさん
垢版 |
2019/04/25(木) 01:19:37.90ID:2wE9GZDh
ああ、「クソガキども」のお言葉いただいたので(なんでそんなこと言いたくなったのか自分に問いてみようなw)、もういいや
0358デフォルトの名無しさん
垢版 |
2019/04/25(木) 01:20:59.82ID:zUwJ78d6
> なんでそう言いたいのか自分に問いてみような

邪魔だからだな。頭悪そうな兄ちゃんがきて
頭悪そうな会話をしてる。そんな感じだ。
0360デフォルトの名無しさん
垢版 |
2019/04/25(木) 04:25:44.56ID:Q6RVSnnY
質問する側が馬鹿すぎると馬鹿を引き寄せるだけなんだよなあ。
まず、まともな質問をするために man を読もうよ。
0361デフォルトの名無しさん
垢版 |
2019/04/25(木) 09:00:30.11ID:XBKhyEHe
よくわからんが、なんで -f が出てくるんだ?
ファイルの有無が問題じゃないんだろう?
globしたかしないかが問題なんだろう?
0362デフォルトの名無しさん
垢版 |
2019/04/25(木) 10:40:29.00ID:xhj9dxYD
""で囲むと展開されなくて""で囲まないと複数の引数として認識するから出来ないので諦めますね
0363デフォルトの名無しさん
垢版 |
2019/04/25(木) 10:43:57.02ID:zUwJ78d6
>>361
globでファイル名に展開されるかどうかは
ファイル(ディレクトリなども含む)の有無で決まるから
0365デフォルトの名無しさん
垢版 |
2019/04/25(木) 13:29:45.25ID:wpotMNKo
そもそも、ファイル名に、半角英数字、- _ (base64url encoding)以外を使うような、
システムを作る奴が悪い

さらに、Windows では、大文字小文字だけが異なる、ファイル名も作れないし。
例、aB, Ab
0366デフォルトの名無しさん
垢版 |
2019/04/25(木) 14:58:23.69ID:zUwJ78d6
>>364
セキュリティホールを作るのは、
お前のように正しく理解してないからだよ。

問題が有るというのなら言ってみな。
0371デフォルトの名無しさん
垢版 |
2019/05/03(金) 15:34:52.90ID:m+FxQhlt
bashのさ、<() ってさ、sort test.txt みたいなのを sort <(cat test) って書けるから
リダイレクトを受け付けないコマンドに、一時ファイル作らずに渡せると思ったけど、
そうとはかぎらないよな?例えば、同じファイルを二回読み込むとかさ
そういうのってやっぱ一時ファイル作らないと無理だよな?
0372デフォルトの名無しさん
垢版 |
2019/05/03(金) 18:08:45.95ID:/bmAVHAq
>>371
パイプの概念がないのか?

sortコマンドもどこでどうなったのかを気にしないで使うというのもよくわからない。
0373デフォルトの名無しさん
垢版 |
2019/05/03(金) 21:10:21.19ID:m+FxQhlt
>>372
知らんがな。俺に言うなや。
そのツールが、そうなってるんだから
sortコマンドはただの例だからこれ以上追求しなくていい

てか、複数ファイルを入力したり複数ファイルを出力したりすることだって
あるんだから、必ずパイプで解決できるわけじゃない
diffコマンドとかそうだろ
0374デフォルトの名無しさん
垢版 |
2019/05/03(金) 21:28:48.60ID:wXl0ssRE
同じ出力のデータを分けて処理することは可能だが、なぜ魔法文にこだわっているのかがわからない。
0375デフォルトの名無しさん
垢版 |
2019/05/03(金) 21:31:24.78ID:m+FxQhlt
>>374
その話は関係ないから打ち切ろう

あるツールが「引数で指定した同じファイルを二回読込みしている」
そういう処理をしている。(そのツールの修正は不可能)
ここまでは理解しているかな?
0376デフォルトの名無しさん
垢版 |
2019/05/03(金) 21:32:23.63ID:m+FxQhlt
まあ結論としては無理ってわかってんだけどさ
bashの拡張を持ってしても
0377デフォルトの名無しさん
垢版 |
2019/05/03(金) 21:35:32.54ID:m+FxQhlt
あ、一時ファイル(FIFOファイル含む)作りたくないっていうのが最終的な希望ね。
メモリだけ(tmpfsや類似のメモリベースのファイルシステムやブロックデバイス除く)でやりたい。
無理ってわかってるけど。
0378デフォルトの名無しさん
垢版 |
2019/05/03(金) 23:01:24.06ID:wXl0ssRE
ただの無知か。
0379デフォルトの名無しさん
垢版 |
2019/05/04(土) 09:14:36.29ID:HnSBFy63
>>371
例がないと何を言っているか意味がよく分からない。
teeとかファイルに出力しながら標準出力にも出力しているけど、
そのようなことがbashだけで表現できればOK?
0380デフォルトの名無しさん
垢版 |
2019/05/04(土) 09:40:10.00ID:eyQzK648
>>379
「リダイレクトを受け付けないコマンド」例
ファイル内容と行数を表示するために「同じファイルを二回読み込む」
これは "例" でありこのコマンドの内容についてのレスは不要
実際には中身はわからずバイナリで修正不可能なものとする。

#!/bin/sh
cat "$1"
wc -l "$1"


↑このコマンドに対して、一時ファイル(FIFOファイル含む)を作らないでデータを渡す
0381デフォルトの名無しさん
垢版 |
2019/05/04(土) 09:47:38.10ID:HnSBFy63
>>380
ファイルを作らないでメモリだけでっていうことなら、
↓こんな感じならOKなの?
dat=$(cat $1)
0383デフォルトの名無しさん
垢版 |
2019/05/04(土) 10:01:46.67ID:eyQzK648
明らかに読み間違えてるレスがくると疲れるんで、
一時ファイルを使った場合の例も書いておくは
これは例なんで、この例を修正しろなんてレスは不要

generate-text > /tmp/test.txt
kono-comand "/tmp/test.txt"

この一時ファイル test.txt を作りたくない
なんで?とかいう質問も不要
0384デフォルトの名無しさん
垢版 |
2019/05/04(土) 10:05:16.07ID:HnSBFy63
>>383
ホントに意味が分からないんだは、
上の例でもこれでいいんじゃないのと思っちゃう。
generate-text | kono-comand
だからこれを直せってほうが意味通じるかも。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況