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

■ このスレッドは過去ログ倉庫に格納されています
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

前スレ: シェルスクリプト総合 その35
https://mevius.5ch.net/test/read.cgi/tech/1606221440/

関連スレ
・【Bash】Windows Subsystem for Linux【WSL】9
https://mao.5ch.net/test/read.cgi/linux/1607589861/
・Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
・シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
・zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
・過去UNIXで使われていた ksh というシェルについて
https://mevius.5ch.net/test/read.cgi/unix/1582358403/
・【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
・おまえら! shell は何を使っているんですか?
https://mevius.5ch.net/test/read.cgi/unix/1012330865/
690デフォルトの名無しさん
垢版 |
2021/06/09(水) 10:49:19.85ID:Zc888NJs
>>689
それって sudo してるからパスワード入力が必要になるが、最後に & 付いてるからシェルに戻って来ちゃうからうまく行かんのでは?
普通にコマンドラインから入力してもうまく行かんと思うんだが。1度sudoで何かを動かした後でパスワード入力しなくて良い状態になっている時ならできるだろうけど。
691デフォルトの名無しさん
垢版 |
2021/06/09(水) 14:08:40.45ID:HNZZx/kM
>>690
確かに!
事前に試した時はその前にsudoしてたからパスワード聞かれなかっただけだわ
2021/06/13(日) 19:52:58.76ID:5F9QidAB
sudo でワイルドカード使いたいときって
sudo sh -c "hoge *"
をイディオムだと思って使うのが良いですかね?
他のやり方ってありますか?
2021/06/13(日) 20:33:30.15ID:ZhJARNOF
>>692
ワイルドカードの使いかたによるやろ。
ワイルドカード処理を自分で行うアプリ(gitとか)なら不要やし。

イディオムではなく、ワイルドカード処理をどれに任せるのかを考えるべき。
2021/06/14(月) 11:12:16.03ID:KZOl1vP3
イディオムってなんだよ? 何も考えたくないって言ってんのか?
正しいコードを書くだけの話だろ
2021/06/14(月) 12:55:12.73ID:0x3Kpqg0
その「正しいコード」とやらが、初心者にはちょっと難しいことはわかる。

凝ったことをやるときに、シェル組み込みのコマンドや機能は混乱のもとやからしゃあない。
2021/06/14(月) 15:51:02.64ID:KZOl1vP3
俺が突っ込みたいのは「イディオム」って言葉だよ
仕組みを理解したくないってのがバレバレなんだよ

上司「なんでこんなコードにしたの?」
馬鹿「知りません。イディオムです!」

っていいたいのバレバレやろ?
2021/06/14(月) 16:13:33.51ID:lTAIWsCW
すみません
sh -c は何も sudo でワイルドカードを使うためだけに存在する構文ではないので、イディオムと申しました
2021/06/14(月) 16:18:29.41ID:lTAIWsCW
sudoが使えるユーザが利用者で、実行時にパスワードを求める想定です

このときにワイルドカードを使うための、その「正しいコード」とはどのようなものですか、というのが質問です
2021/06/14(月) 19:26:11.00ID:hx6guc/Q
sudoでもワイルドカード使えるし
echo /etc/*.conf
ってしてみろ
shellの機能を使ってるのがわかってない
shellのオーナーはrootじゃなくユーザー
2021/06/14(月) 21:27:46.24ID:KZOl1vP3
正しいコードを聞くんじゃなくて、
シェルスクリプトを勉強しろって言ってんの

コード聞いて終わりにするだろ

上司「なんでこんなコードにしたの?」
馬鹿「知りません。5ちゃんねるでこれが正しいって聞きました!」
2021/06/14(月) 21:29:27.91ID:0x3Kpqg0
>>699
なんのためのsudoなの?w
起動側のワイルドカード処理ではダメなケースが多かろう。
2021/06/14(月) 21:32:42.19ID:0x3Kpqg0
>>700
ほっとけよ。
それでもべつにええがな。

そもそも、ムリなヤツにはムリやし、できるヤツなら勝手にやる。
2021/06/14(月) 21:42:49.75ID:TBcjiJdx
どの回答も想像を絶するレベルの低さでワロタ


>>693
どれに任せるかって、質問者が想定してんのはフツーにシェルだろ

>>699
アホ

>>700
何に発狂してんのか分からんが少なくとも質問者の「イディオム」って語の使い方は正しいし、お前は何ら質問に答えていない
分からんなら無理してレスすんな

>>692
こだわりがあって避けたいのでない限りそれで良い
一般に使える、記述量が少ないあるいは分かりやすいやり方は特にない
あともう分かってるだろうがこのスレ終わってるからわざわざここで質問するな
2021/06/14(月) 21:47:07.04ID:KZOl1vP3
どこがイディオムなんだ?ただのワイルドカードだろ
*がワイルドカードで終わる話なんだが?
うん。はいおわた。そこにイディオムはありません。

https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%87%E3%82%A3%E3%82%AA%E3%83%A0

イディオム(英語: idiom、フランス語: idiome、ドイツ語: Idiom)とは、
単語における一定の配列での連結の総称である。言語の類型によっては、
単語に準ずる形態素や表意性を持つ文字がこの役割を担うこともある。
この連結によって、慣習的に用例と意味が固定しており、字面から意味を推測できないことも多い。
2021/06/14(月) 21:51:20.88ID:XErzM4Zs
↑ 本題とは関係ない変なこだわりっぷりはキチガイ
2021/06/14(月) 22:01:38.26ID:KZOl1vP3
本題の答え *がワイルドカード
あとは書いたように動く
イディオムなんてない
2021/06/14(月) 22:07:17.88ID:RVbOy7mU
>>701
sudoはsudo cmdのcmdの実行をroot権限にするだけ
echo *.confもechoにしてみたらいろんなの渡されてびっくりだよ
shellはあらかじめ余計な処理をする
shellを実行してるのはuser
2021/06/14(月) 22:19:23.20ID:XErzM4Zs
>あらかじめ余計な処理
余計といえば余計だが、その余計なおかげでechoなどは何もしなくてもいいんだけど
POSIXに展開はルールは明文化されてるから一度読めばいいと思う
2021/06/14(月) 22:38:14.31ID:0x3Kpqg0
>>703
> >>693
> どれに任せるかって、質問者が想定してんのはフツーにシェルだろ

そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
想像を絶する想像力のなさでワロタ。w

> あともう分かってるだろうがこのスレ終わってるからわざわざここで質問するな

おまえは、回答するな。
2021/06/14(月) 22:38:16.95ID:lTAIWsCW
>>704
いや誰もワイルドカードのことはイディオムとは呼んでいなくて、sh -c $command をさも sudo でワイルドカードを使うための構文のように使ってるのがイディオム的だという話なんだが、もしかしてアタマが特別お悪い?


>>706
> 本題の答え
おもろいなぁキミ笑
2021/06/14(月) 22:42:35.98ID:0x3Kpqg0
>>707
sudoであえてshを実行する意味がわかってないやろ?
2021/06/14(月) 22:43:09.07ID:XErzM4Zs
>>710
人格が変わりすぎだろうw
It’s a common idiom to use env to find bash even if it’s been installed in another directory
と同じような感覚で使ったんだろう?そもそもは。とは思ってたけど
しかし人格が変わりすぎwww
2021/06/14(月) 22:43:39.18ID:TBcjiJdx
>>709
なんでなんの関係もないお前が反応してんの
もしかしてID:KZOl1vP3と同一人物でID切り替えながら荒らしてんの?
2021/06/14(月) 22:45:44.34ID:lTAIWsCW
>>712
その文が何なのかは知りませんが、まあそんな感じです
ごく普通の用法ですよね?
2021/06/14(月) 22:51:30.90ID:XErzM4Zs
>>712
別にいいだろうがw
>>703の冒頭の余計なこと書いてるんだし。あんなの書く癖に>>713なんて書いちゃうんだな
やっぱり小心者故の虚勢だったかと思うぞw

>>714
まあ(そんなに)間違ってはないだろうどうな
ごく普通の用法と言われれればどうかなあ??あんま使わない使われてないかな
(そう目にすることはない、Web上のプログラミング的な色々なとこでは。使ってるとこもあるだろうけど)
2021/06/14(月) 22:53:20.37ID:XErzM4Zs
>>715
>>712
ではなくて
>>713
2021/06/14(月) 22:55:27.91ID:TBcjiJdx
>>715
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。

いやこんなにも論理的に破綻していてかつイディオムという語の意味を理解してない奴が同じタイミングで二人もいるって恐怖でしかないんだが
2021/06/14(月) 22:58:00.42ID:XErzM4Zs
別に居ても不思議じゃないけどw
2021/06/15(火) 03:36:25.29ID:fYgQamCV
>>713
ふつうに考えて、荒らしはおまえの方だな。w

>>717
> いやこんなにも論理的に破綻していてかつイディオムという語の意味を理解してない
ただ主張するのではなく、どのように破綻しているのかを述べよ。
2021/06/15(火) 04:54:46.12ID:UNOhr6//
>>719
> ただ主張するのではなく、どのように破綻しているのかを述べよ。

では、
>>709
> そんな想定ができるヤツは、あんな質問をしないし、「イディオム」とは言うまい。
がどう破綻しているか述べる

質問者は「一般ユーザが展開したワイルドカード」と「root が展開したワイルドカード」が違うのを知っているからこそ「sudo でワイルドカードを使いたい」と思い至ったのであって、この時点でワイルドカードの展開はシェルが担うという前提を持っている
その上で「ワイルドカードの展開をroot のシェルに委ねられないか」というのが元の質問なわけだね
従って、
> そんな想定ができるヤツは、あんな質問をしない
というのは偽だ
なんせ事実として質問者は「そんな想定」を持った上で「あんな質問」をしているのだから

また、いくつかの説明や例文がこれまでに出ているように、質問者のイディオムという語の用法は全く間違っていないし広く使われているものと合致するので、
> 「イディオム」とは言うまい
というのも頓珍漢も甚だしい
(もちろん質問者のイディオムという語の使い方が間違っていることをあなたたちが客観的に示すということはあっても良い。できるものならご自由にどうぞ)
そもそも「こういう知識レベルの人間はこういう語を使わない」なる命題が常に真なわけないでしょう
コンピュータの知識と日用語の語彙に何らかの相関があったとして、それは「そういう傾向がある」というだけなのでね

以上のことから、>>709は事実から説明される事柄と尽く反対のことを言っていて、全体的に偽なので、論理的に破綻しているといえる
2021/06/15(火) 11:08:32.71ID:ic6VniVo
>>692
環境を引き継ぎたければsubshellで
(sudo hoge *)
2021/06/15(火) 11:50:21.12ID:vhbon9Jn
>>699
そのための全ての展開に優先するaliasですよ
user/pwdを保存しておいて、su/sudo&好きにcdしてそこで*を展開
hogeはシェル関数にしておいて、末尾に元のユーザーへsu/pwd復元コード
2021/06/15(火) 11:56:27.22ID:vhbon9Jn
エイリアスはパースの第一段階なので、su root; cd some/dir; hoge *に渡る*はsu/cd後のものになります、言葉不足ごめん

ファイル名展開はパラメータ展開よりも後なので、他の展開で仕込んでもいいかも
2021/06/15(火) 11:57:34.70ID:vhbon9Jn
>>723はalias fuga=に突っ込むコマンドです
2021/06/15(火) 12:03:49.18ID:fYgQamCV
>>720
> 質問者は「一般ユーザが展開したワイルドカード」と「root が展開したワイルドカード」が違うのを知っている
それは>>692に書かれていない。
おまえの決めつけにすぎないので、以降の長文は全部ムダ。w

まあ、質問者の「イディオムだと思って使う」の意味次第ではあるか。
個人的には、理屈がわかってればそのように「思って」は使わない。
2021/06/15(火) 12:32:19.46ID:Uk8DlJ/9
またID切り替えて恥晒し続けるのか

昨日は他スレでも同じようなやつがいたな
2021/06/15(火) 14:22:06.77ID:fYgQamCV
>>726
自分の敵は全部同一人物扱いか。w
2021/06/15(火) 14:48:09.92ID:D4jRQBdQ
>>721
権限も引き継ぐから何もやってないのと同じ
2021/06/15(火) 15:23:52.83ID:uDm4jDy6
>>726
XXな人が使うイディオム
2021/06/16(水) 08:06:02.87ID:drc75L4c
微妙に関係しそうだから恥をしのんで
()のサブシェルで手軽にサブシェルのID得る方法ってないかな?
パラメタ展開をエイリアスで遅延テクは、エイリアスが行頭に来る必要があるので、おもむろに書ける()の利点が無くなるかなと
2021/06/16(水) 09:57:22.10ID:up1ZHWjO
echo $$
ではダメなの?
2021/06/16(水) 10:13:45.13ID:drc75L4c
>>731
()の中の$$は親シェルのpidを返すのよ
それこそsh -cに(適当にエスケープした)文字列としてecho $$を渡せって話だけど、折角分かりやすい()構文があるのだから、その範囲内で何かワークアラウンドできないなと
733デフォルトの名無しさん
垢版 |
2021/06/17(木) 17:40:01.55ID:uOhhE14V
このようなファイルがあります。
先頭の単語+デリミタ(今回はカンマ)以降の文字を全て削除したい場合は
sedでどのように書けばいいでしょうか?

one,no need word, no need word
two,no need word, no need word
theree,no need word, no need word
four,no need word, no need word
2021/06/17(木) 18:27:37.79ID:xgZUa/OO
sed じゃないけど cut で

$ cut -d, -f2- dat.csv
2021/06/17(木) 19:04:27.30ID:vGCQo8/9
sed -r -i 's/\,.*$/\,/' a.csv
2021/06/17(木) 19:44:55.11ID:xgZUa/OO
>>734
間違えちゃった…(テヘッ
2021/06/17(木) 21:58:28.56ID:T6UVeHQo
なんでもいいけど、-iはよせよw
2021/06/17(木) 22:03:25.59ID:T6UVeHQo
あ、あともう一つ突っ込み。
-rもいらないだろ?なんで使った?
バックスラもいらないでしょ
2021/06/17(木) 23:43:32.54ID:dfr4yCUQ
>>730,732
サブシェルのPIDはbashの4以降(確か。3にはない)なら、$BASHPIDで得られる
>>732が何言ってるのかわからんけど、他に有用性があるのは sh -c 'echo $PPID'
2021/06/17(木) 23:49:44.80ID:dfr4yCUQ
>>739
> >>732が何言ってるのかわからんけど
ああ、本来サブシェルでやりたいこと書きたいことを sh -c 'この中に' 書くってことか
sh は起動するけど、sh -c 'echo $PPID' はそれだけ、$BASHPID と(ほぼ)同等ね、いちおう
2021/06/18(金) 01:05:57.70ID:fLSgA5jz
>>733
grep でいいんじゃね

grep -Eo '^\w+,' hoge.dat
742デフォルトの名無しさん
垢版 |
2021/06/23(水) 00:40:02.57ID:IzFohus8
>>675
UNIXを知ってますか?
2021/06/23(水) 15:18:18.24ID:IrcINDyC
世間的に気にしてるヤツはそんなに居ない
2021/06/25(金) 10:36:26.68ID:RM7Ajj8i
>>733
sed -r 's/,.*$/,/g' test.csv
-r 拡張正規表現を使えるようにする。長いオプションはコレー> --regexp-extended
-i 何の確認もなしに実行結果でファイルを上書きするオプション。絶対に使ってはならない。 --in-place
正規表現
「.」は「任意の1文字」
「*」0回以上の繰り返し(たぶん0は空文字列)
「$」は「行末」
「,.*$」でカンマとそれに続く任意の1文字から行末まで

echo "chon, chon, chon" | sed -e 's/chon/5ch/' # 5ch, chon, chon
echo "chon, chon, chon" | sed -e 's/chon/5ch/g' # 5ch, 5ch, 5ch
2021/06/25(金) 10:52:02.40ID:RM7Ajj8i
>>733
# cutコマンドで1列目を取り出して
# sedで行末をカンマに置き換える
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/'
コレでよければ
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/' | tee test.csv
追記したければ
cut --delimiter=',' --fields='1' test.csv | sed 's/$/,/' | tee --append test.csv
746デフォルトの名無しさん
垢版 |
2021/06/25(金) 23:22:45.67ID:8lh6XF2h
シェルスクリプトの話じゃねえ
2021/06/26(土) 00:28:57.99ID:HkMm3Nsz
pythonとかJavaは沢山ある癖に、シェルスクリプト学べるサイトは一つもないのな…
2021/06/26(土) 06:02:48.49ID:m56tn/Vu
>>733
# PowerShell
Get-Content "test.csv" | ForEach-Object { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }

PS> gal
# Aliasを使うとこうなる
type "test.csv" | % { $1列目, $2列目, $3列目 = $_.Split(",") ; "$1列目" -replace "$", "," }
2021/06/26(土) 13:09:52.71ID:pd6KxWqx
>>747
UNIX & Linux コマンド・シェルスクリプト リファレンス
https://shellscript.sunone.me/
このサイトはどうだ?
リファレンス名乗ってるけど、シェルスクリプトの基本から
解説してるぞ。
2021/06/26(土) 15:02:58.18ID:HkMm3Nsz
書き方間違えた。。
シェルスクリプト学べる講座みたいな意味です。超初心者向けはあるけど、本格的に教えてくれるのないよね?
2021/06/26(土) 15:12:45.40ID:pd6KxWqx
>>750
本格的、ってどういうもの?
シェル芸みたいなものってことか?
ま、それは確かにないだろうなあ。
ほとんどが秘伝というか口伝みたいなものだから、講座作れるほど網羅している
人ってのがなかなかいないしなあw
752デフォルトの名無しさん
垢版 |
2021/06/26(土) 15:20:25.76ID:15vAhO8I
python使えたらシェルスクリプト要らんのでは
2021/06/26(土) 15:26:57.82ID:pd6KxWqx
>>752
ま、なにするかによるけど、例えばファイルをリネームしたりコピーしたり、
ディレクトリ捜査/操作したりするようなのなら、pythonとかで書くのは
かなーりめんどくさいよ?w
2021/06/26(土) 16:20:33.94ID:fSNbZd7z
man bash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
SHELL BUILTIN COMMANDSを検索

man dash > $HOME/Documents/bash.txt
vi $HOME/Documents/bash.txt
Builtinsを検索
2021/06/26(土) 16:46:27.14ID:fSNbZd7z
man bash-builtins
/検索語句
Nキー:次
Bキー:前
Qキー:終了
2021/06/26(土) 16:58:17.32ID:Y3/GrXsT
>>752
インストールされてない/したくない環境もあるやろ。
2021/06/26(土) 19:39:26.99ID:6sjjJ5as
本なら、ある。
UNIXシェルスクリプトコマンドブック 第3版、 山下哲典、2015

ファイル・文字列処理なら、Ruby が良い

fileutils モジュールの、DryRun で、実際には実行せずに確認できる。
削除なら、FileUtils::DryRun.rm
2021/06/26(土) 20:08:24.78ID:eKFjOqkk
>>755
何のためのレスかわからんけど、h 押してみ
2021/06/26(土) 23:12:46.20ID:Y3/GrXsT
>>758
初心者は、manやinfoの扱いに困ることはありがち。
infoは、ワイも未だに困ることがあるで。💦
2021/06/27(日) 03:00:03.59ID:JLxNdtth
h 押すだけで使い方を覚えなくてすむから良いね
2021/06/27(日) 10:23:28.81ID:kOTo8S0v
bashの予約語
! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
その中からdashにはない予約語
! [[ ]] coproc function in select time
2021/06/27(日) 13:34:55.40ID:eeXftvTT
>>761
(( ))とかもdashにはないだろう。
…つかなんのためにやってんの?これ?w
763デフォルトの名無しさん
垢版 |
2021/06/28(月) 09:24:33.50ID:7rguVsVy
>>747
名著「入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界」
2021/06/28(月) 15:58:41.95ID:PrwZxveA
functionはdashにはないので関数定義で
function 関数名 () { }
と書けない。関数をつくるときはfunctionを省く。
2021/07/04(日) 23:04:42.22ID:B2MxyBfM
Windows10ではC:\Windows\Microsoft.NET\Framework\<バージョン>以下にvbc.exeが標準インストールされてるけど
Windows11のInsider Preview版でも入ってる?
2021/07/07(水) 15:15:00.04ID:y8n+ZYbw
シェルスクリプトの引数として文字列を渡すとき、空白等を含むものはダブルクォーテーションで包んで渡してます
このダブルクォーテーションを省略できたら楽なのですが、行末 (セミコロン) まで丸々一つの文字列と見なす方法ありますか
2021/07/07(水) 17:53:02.55ID:S2V3/enC
上手く引数をクオートしてやればいいんじゃね、bashには最初からそんなシェル関数が定義されてるので、参考に
declare -p等の出力ね
ただしパースが不可逆な処理である以上、完全な再構築は不可能
自明な例:cmd 'a'とcmd a

行内コメントとヒストリ、スクリプト中のエイリアス展開等を使っていいならもっと攻められる
aliasは全ての展開に優先するので何でもできる
func () { history 1 | 引数処理}
alias getcmdline='func #'
getcmdline ) any' illegal " args

スクリプト中なら
set -o history
shopt -s expand_alias
が必要
2021/07/07(水) 17:59:42.48ID:S2V3/enC
pwshにはズバリstop persing operator --%があるね
2021/07/07(水) 18:50:47.92ID:S2V3/enC
;で止めるのはexprやパラメータ置換で;以降を切り出しておいて、ラップするコマンドの処理が済んだ後でeval に渡せばいいかな
&等他の制御構造も使いたいとなるとキリがないけど
下手に通常コマンドのように見せかけるのは混乱の元にもなるので、割り切った方がいい
2021/07/07(水) 19:10:07.39ID:2/exV/Wq
たかが''で括る手間を省く為に、あまりアナーキーなことをするのは…
2021/07/07(水) 19:41:57.72ID:JjiOZstZ
だよな
2021/07/07(水) 21:59:30.78ID:rfVJ+RI1
これ動くんだ…
2021/07/07(水) 22:09:19.52ID:lJn1zakl
インラインコメントのつもりで付けた#以降が読まれる可能性があるけど、普通スクリプト中のエイリアスは無効だから大丈夫なのね
774デフォルトの名無しさん
垢版 |
2021/07/10(土) 17:17:24.24ID:QtAhxdi9
w3mブラウザを使っています。
w3mを起動した後の自動処理ってシェルでどのように書けばいいでしょうか??

毎回タブを作ってURL01とURL02を開くなどをやりたいのですが
bashrcにaliasやfunctionを書くことも考えましたが、w3m起動後の処理はできないので困っております。
2021/07/10(土) 22:08:01.96ID:icE46eu/
例えば、Ruby, Selenium Webdriver で、
Chrome なら操作できるけど、そういうマイナーなブラウザには対応していないかも

Rubyの他に、JavaScript でも書ける。
Selenium IDE と言うのもあるらしい

url_0 = "どこかのURL"
url_1 = "どこかのURL"

driver.navigate.to url_0 # url_0 のタブを開く

driver.execute_script( "window.open()" ) # 新しいタブを開く
driver.switch_to.window( driver.window_handles.last ) # 新しいタブへ移動する

driver.navigate.to url_1 # 新しいタブ内で、url_1 を開く
2021/07/10(土) 23:45:50.65ID:/14ZuXuK
TTY操作ってんならシェルスクリプトではなくexpectスクリプトでしょ
Linux/Unix/プログラム各板見たがexpectスレはないみたいで恐縮ではあるが
2021/07/11(日) 02:11:09.53ID:lZiRxAj0
Ruby にも、expect ある
2021/07/11(日) 06:05:30.31ID:KqeUxmyI
間に擬似端末を挟む方法で w3m や lynx を自動化したことならあるけど
w3m には自動化のためのインターフェースがあるみたいだよ。
その名を "Local CGI" という。
残念ながら man には書かれていないが、普通にダウンロードすれば
doc-jp/MANUAL.html に書いてある。
サンプルコードは Bonus/ にある。
ご所望のことが全部できるかは判らないが
他の方法よりは確実な動作を期待できそうだ。
779デフォルトの名無しさん
垢版 |
2021/07/12(月) 18:24:55.56ID:f04FcsMT
レス遅くなってすいません。

>>775
rubyでも書けるんですね。ちょっと詳しく調べてみます。

>>776 777
恥ずかしいですが、expectスクリプトという概念を初めて知りました。
インタラクティブを自動化出来るんですね。
目から鱗で震えました。ありがとうございます!

>>778
"Local CGI"調べてみました。
当方の問題ならこれで簡単に解決できそうです。

色々なコマンド後の処理を自動化したいなとずっと思ってたのですが
皆さんのおかげで解決しました。
ありがとうございます!スレチ失礼しました。
2021/07/15(木) 16:46:27.48ID:IbROtnW3
>/dev/nullでゴミ捨ててるコードをよく見るけど、
|:はダメなの?個人的によく使うんだけど

標準入力受け付けない:があったりするのだろうか
2021/07/15(木) 16:49:38.15ID:IbROtnW3
もちろんステータス見たい時はイエスマンの:はダメだけど、単に出力全部捨てたいケースね
標準エラーはパイプを通らないし、標準出力は:が食べる
2021/07/15(木) 17:56:15.08ID:CDvGwwEr
全部捨ててるのではなくて
最初に書いた時にSIGPIPEで死んでる
それに無駄にfork/cloneしてる
2021/07/19(月) 08:43:54.11ID:7DxAXQZB
【完全解説】ブログで月1万円稼ぐ具体的な方法!【アニメ動画】
https://www.youtube.com/watch?v=M_Umbak9icg&;t=401s
【ブログの始め方完全解説!】聞くだけでOK!初心者でもわかるよう基本から超丁寧に解説!【これだけでOK!】
https://www.youtube.com/watch?v=M1lUsqp7lgY
【凡人でもOK】何の実績も強みも無い人がブログで稼ぐ方法
https://www.youtube.com/watch?v=OODFq6YIbYg
【雑記ブログの始め方】「収益化させやすい」運営方法を5ステップで解説【ワードプレス】
https://www.youtube.com/watch?v=WWU_Akj2onM&;t=2s
ブログ運営のおすすめ必須ツール11選!【これだけで月100万円いけます】
https://www.youtube.com/watch?v=w1Oj_WIkNJs
【こんな人は伸びる!】上手くいくブロガーの特徴ベスト5!【月収100万超えブロガーが徹底解説!】
https://www.youtube.com/watch?v=nJG4SsoIN0w
【知らないと失敗する!】ブログで稼ぐための目標設定をプロが解説!
https://www.youtube.com/watch?v=wvWFGZ9hPIo
2021/07/19(月) 20:25:38.28ID:Vxw+8mZv
makeについて質問。
makeを多段に実行したとき、ログに「make[...]:」とか段数が出力されますが、あの段数をリセットする方法はありますか?

ログはmake: → make[1]: → make[2]: → make[3]:と深くなるにつれて出力が変わりますが、たとえば3段目でリセットして、make: → make[1]: → make: → make[1]:にする、みたいな。
2021/07/19(月) 21:17:27.86ID:1Cvv5Nld
makeスクリプトの中に
sh -ec make
挟むとか
2021/07/20(火) 10:34:00.51ID:KkKHDI5m
>>785
とくに変化はありませんでした。
別のプロセスを間にはさんでも変わらないようです。
2021/07/20(火) 10:34:49.18ID:KkKHDI5m
>>784
自己解決。
MAKELEVEL環境変数を設定。
2021/07/30(金) 18:22:37.15ID:7AkGA5GJ
スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
2021/07/30(金) 18:25:38.46ID:PFQXQc2n
誤爆だろな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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