[過去ログ] シェルスクリプト総合 その32 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(2): 2019/10/25(金)00:08 ID:6btPTvif(1/3) AAS
シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その31
2chスレ:tech
903: 2020/03/19(木)10:09 ID:JDU05jIv(1/4) AAS
expr の四則演算は、整数しか使えないのかも。
こういう感じ
echo `expr 100 + 20`
#=> 120
まあ、expr で検索して!
904: 2020/03/19(木)10:25 ID:YUAN2W2v(2/2) AAS
だからさぁ、整数の計算ごときで
expr使うなって
905: 2020/03/19(木)11:40 ID:Ul0ojJdl(1) AAS
とりあえずでもいいだろ。俺は知ってるを押し付けすぎ
906: 2020/03/19(木)12:30 ID:awkeHjZR(1/3) AAS
>>902
数字じゃないとダメってことですか?
調べたのですが、普通に同じような書き方でテキストファイルに数字つけてる方がいたので参考にしたのですが…。
907(1): 2020/03/19(木)13:14 ID:JDU05jIv(2/4) AAS
文字列の連結なら、普通に続けて書けばよい
a=xyz
b=${a}11
echo $b
#=> xyz11
908(1): 2020/03/19(木)14:30 ID:awkeHjZR(2/3) AAS
>>907
その例でいうと"11"が不明なのです。
tarを作成する際に同じ名前のtarがすでにあった場合は数字をつけたいんですよね。
すでに同一ファイル名があったら1をつける。
同一ファイル名1があったら2に変えるみたいな…。
名前の重複を避けたいのです
909(1): 2020/03/19(木)15:05 ID:JDU05jIv(3/4) AAS
名前が重ならない、temp ファイルを使えば?
mktemp コマンドを利用して、ユニークな名前の一時ファイルを作成する
それか、ファイル名に、タイムスタンプを含めれば?
1 とか、2 を付けるのは難しい。
1があれば、2にして、
2もあれば、3にして、
こういうループは難しい
910: 909 2020/03/19(木)15:12 ID:JDU05jIv(4/4) AAS
mktemp【コマンド】とは
外部リンク[html]:wa3.i-3-i.info
911: 2020/03/19(木)15:43 ID:A3B3oNfE(1/3) AAS
>>908
プログラミング的なスクリプトを書かないとだめだろう
通番をつけるのは今何がつけられていて
その中での最大が何でそれにプラス1するって処理が必要で
複雑になるから通番なしのものがあれば
日時入れるのが妥当なのではないかな
912: 2020/03/19(木)15:44 ID:A3B3oNfE(2/3) AAS
ちなみにwgetであればオプションにもよるけど
ダウンロードしようとしてるファイルがすでにあれば
通番をつけるようになってるけどtarとかでは聞かない
913: 2020/03/19(木)16:37 ID:Pzb6grX0(1) AAS
連番のH画像/動画を一気にダウンロードする7.5 [無断転載禁止]©2ch.net
2chスレ:unix
914(1): 2020/03/19(木)18:00 ID:fgd/sgV0(1) AAS
外部リンク:qiita.com
これを参考にしたのかな? まあ足してるの整数同士だけど。このまま試してみればいい
じゃん。ただ、機能するけどちょっと直さないと名前がおかしくなると思うたぶん。
915: 2020/03/19(木)18:26 ID:A3B3oNfE(3/3) AAS
それとはちと違う
いや大幅に違う
916: 2020/03/19(木)18:49 ID:CK8P50/C(1/3) AAS
ID:awkeHjZR が参考にしたのだろ
既存の最大の次でもない、単にあったら次だな、今までのレスからは
誰もが使うのだったら既存の最大の次の方が望ましいだろけど
917: 2020/03/19(木)19:05 ID:CK8P50/C(2/3) AAS
ああ、最大にはなってるのか。いちおう
間に欠番があってはとか、というよりちょっとアレだなという、「大幅に違う」か(?)
918: 2020/03/19(木)19:11 ID:CK8P50/C(3/3) AAS
あ、いや、やっぱ、あったら次なだけか
しつれい
919: 2020/03/19(木)19:20 ID:awkeHjZR(3/3) AAS
>>914
それを参考にしました。
よく見たら整数通しでしたね。
申し訳ありません…
920: 2020/03/19(木)22:46 ID:0V5Z+nsf(1/2) AAS
A=tarファイル名
B="$A"
if [ -e "$B" ]; then
e="${B##*.}"; [ "$e" = "$B" ] && e='' || e=".$e"
B="${B%.*}"
x=0
for f in "$B"*$e; do
v="$(expr "${f%.*}" : '.*[^1-9]\([1-9][0-9]*$\)')"
[ "$v" -gt "$x" ] 2> /dev/null && x=$v
done
省6
921: 2020/03/19(木)23:10 ID:0V5Z+nsf(2/2) AAS
Aに拡張子ない場合、 for直下に
[ "$e" = '' ] && [ "${f##.*}" = "$f" ] && continue
とか必要か
拡張子抜きの名前の最大の場合はこれはいらず
for f in "$B"*; do
でいいはず
拡張子無いのだけを抽出するGLOBってあったかな?
922: 2020/03/20(金)01:41 ID:3O1eG+VM(1) AAS
exprでの正規表現がよくわからない
何処かまとめてある所はありませんか?
923(1): 2020/03/20(金)06:24 ID:v4UpLchp(1) AAS
外部リンク[html]:pubs.opengroup.org
外部リンク[html]:pubs.opengroup.org
正規表現 BRE
などとググればたくさん。お好きなとこを
924: 2020/03/20(金)07:26 ID:MAPSjPan(1) AAS
>>923
問題はそれに従ってないものが多いw
925(1): 2020/03/20(金)10:33 ID:AIrE4YMP(1/2) AAS
BREで動かないってどこのexpr?
926(1): 2020/03/20(金)11:04 ID:Cf4Df32C(1/2) AAS
ユーザ名パスワード受け取って、シェルスクリプト内でloginさせるような使い方って普通?
docker login -n ユーザ名 -p パスワード
docker run イメージ
みたいな
927(2): 2020/03/20(金)12:32 ID:VFfjvmrc(1) AAS
windowsはtempでLinuxはtmp派だと思ってたがmktempなんてあるのか
928(1): 2020/03/20(金)15:01 ID:b2ihZgLg(1) AAS
>>926
そういうのはCredential Storeを使う
シェルスクリプトのことだけで言えば
echoさせずにパスワード入力させてそれをreadするのが普通
コマンドに渡すやり方だと最低でも履歴に残らないような対処が必要
929: 2020/03/20(金)20:09 ID:Cf4Df32C(2/2) AAS
>>928
なるほど勉強になった
historyに残さない方法で行く
930: 2020/03/20(金)22:01 ID:PR7Jj0ZL(1) AAS
>>925
そうじゃなくて、POSIXで正規表現が使えるコマンドは
expr、grep、awk があるが、例えば BREに対応と言いつつ
BRE以上のものにまで対応していて、どこまで対応してるのか
完全に一致しているのか改変されているのか、
拡張オプションが有るのか、バラバラと言うこと
931: 2020/03/20(金)22:11 ID:AIrE4YMP(2/2) AAS
exprはBREだけだから関係ない話だな
932(1): 2020/03/21(土)00:31 ID:aSsBDGSZ(1/2) AAS
本当に?
933(2): 2020/03/21(土)09:14 ID:Nklv0DXu(1/3) AAS
>>927
Windows 10, WSL, Ubuntu 18.04 で、
which mktemp
/bin/mktemp
でも、一時ファイルのパーミッションが、700 になるなど、ややこしくて使えない!
単純にそのディレクトリ内で、ユニークなファイル名がほしいだけ
934(1): 2020/03/21(土)10:15 ID:aSsBDGSZ(2/2) AAS
>>927
普通はmktempやろ
>>933
何がややこしいのかわからん。700で困るんか?
ディレクトリ内で、ユニークなファイル名が欲しいだけなら700で何も問題ないだろ
お前がパーミンションを理解してないだけ
935: 2020/03/21(土)10:17 ID:HMPQgip5(1/4) AAS
できるけど
936: 2020/03/21(土)10:24 ID:HMPQgip5(2/4) AAS
>>934
テンポラリを表す省略形のことだろ
そのディレクトリは/tmpではないとこじゃね。PWDとか指定したのとか。できるけど
ファイル名だけもらっても実際にはファイル作ってるけど。単に作った直後に消してるだけ、まあ問題になりそうにないけど
700が困るのはさっぱりわからんな
937(1): 2020/03/21(土)11:01 ID:tuOdrSqm(1/2) AAS
ファイル作らずに(コマンド実行時点で)一意なファイル名が欲しいだけならオプション付きで実行すればいいだけじゃね?
938(3): 933 2020/03/21(土)11:20 ID:Nklv0DXu(2/3) AAS
644 はよく見るけど、
700 はよく見るパーミッションじゃないから、困らないのかなと思って
939: 2020/03/21(土)11:48 ID:tuOdrSqm(2/2) AAS
>>938
見たことあるものを見たことある方法でしか使えないお前は困るかもしれないが、普通の知識や技能のあるlinuxユーザは困らない。
940: 2020/03/21(土)12:21 ID:HMPQgip5(3/4) AAS
>>937
mktemp内で一度フィルを作って、ファイル名だけくれのオプションだったらそれを消す
ということをしてるだけということね
>>938
644で言えば、6の部分がお前、44はお前じゃない誰か用
700で7がお前なんだから何も困らない、お前じゃない誰かが困るかもだがテンポラリなんてお前しか使わないだろ(700というより600だろ。ファイルでなくてディレクトリなら700だろけど)
941: 2020/03/21(土)12:35 ID:HMPQgip5(4/4) AAS
00で困るような使い方(他に渡すとか)するにしてもお前のファイルなんだからchmodでも自分でしとけというとこやな
942: 2020/03/21(土)13:00 ID:kuk28tWG(1/2) AAS
な?言ったとおりだっただろ?
↓>>938はパーミッションを分かってないだけだって
> 700 はよく見るパーミッションじゃないから、困らないのかなと思って
このパーミッションでOKかどうかっていうのは、
よく見るかどうかで決めるもんじゃないだろ
レビューでこのパーミッションはあまり見かけいないから困るだろ
とか指摘されたらぶっ○したくなるわw
943: 2020/03/21(土)13:06 ID:kuk28tWG(2/2) AAS
昔ウェブサービスでユニークなファイルを作るべき処理で
オレオレで年月日時分秒とかのファイルにして
アクセス多数で重複ファイルがでてトラブった会社あったなぁw
mktempにファイルを作らせないと
真にユニークな名前なんて作れねーんだよ
もしくは頑張ってmktempと同等のことをするとかな
そのためにはmktempがなぜそうしているかの理由を調べないといけない
944(2): 2020/03/21(土)13:42 ID:ys6caT0H(1/2) AAS
うちになんでもかんでもシェルスクリプトでやろうとする人がいるんですが
どうすればやめさせられますか?
GUI以外でシェルスクリプトでこんなことやるなっていうのを具体例付きでを教えて下さい
それを根拠に理論武装してあいつをぶちのめしてきますので
945: 2020/03/21(土)13:55 ID:VWAuyUcc(1) AAS
自分もなんでもかんでもシェルスクリプトでできるような知識を持つことだな
そんな誰か頼りではなくて
なんでもかんでも自分でもできるがしないじゃないとぶちのめせないだろ
946: 2020/03/21(土)14:08 ID:FH3PvP3D(1) AAS
>>944
シェルスクリプトではなくプログラミング言語を使った方がいいケースがこれまでにもあったということだろ。それならそのケースについて他の方法でやった方が良い理由を具体的に説明すればいいんでないの?
947(3): 2020/03/21(土)14:33 ID:Nklv0DXu(3/3) AAS
x=x
a=
b=
if [ $a = $b ]; then # 構文エラーw
fi
空文字で構文エラーになるから、下のように双方に、1文字ずつ追加して比べるw
面倒くさい
if [ $a$x = $b$x ]; then
echo $a$x #=> x
fi
948: 2020/03/21(土)17:00 ID:EuPu7JS3(1) AAS
単にシェルでのコマンドに引数を与える時の一般規則
xなどつけるのが嫌なら "で囲めばいいだけだろ
949: 2020/03/21(土)17:17 ID:57M5Xw8A(1/2) AAS
>>947
[ "$a" = "$b" ]
とすればいいだけ。
ちなみに
a="("
b="("
↑みたいな一見展開されたらヤバそうな記号でも
引用符で囲んでやれば単なる文字列として解釈される。
950(1): 2020/03/21(土)17:24 ID:He36jL2X(1) AAS
>>944
When to use Shell
外部リンク[html]:google.github.io
951(1): 2020/03/21(土)20:36 ID:57M5Xw8A(2/2) AAS
>>950
100行以上のシェルスクリプトを書くのはやめとけってことは
1行に1000文字くらい詰めて99行にしたらいいのかな?(難癖)
952(1): 2020/03/21(土)21:07 ID:9LT6s2kW(1) AAS
# This gives a "too many arguments" error as f* is expanded to the
# contents of the current directory
if [ "filename" == f* ]; then
echo "Match"
fi
とかどういう層向けのなんだろな。なんか上にいるのと同じレベル向けとしか思えない
echo "filename" == f* ]
などとまったく同じなのに、[ ] が何か特別(スクリプト構文?)とでも思ってしまう割と最近始めましたな人用かと思ってしまうな
953: 2020/03/21(土)22:20 ID:ys6caT0H(2/2) AAS
>>947
引数は""で囲むのは常識。shellcheckでも指摘される。
954: 2020/03/22(日)00:45 ID:7aOor4nW(1/4) AAS
>>951
100行以上って理由がわからんよね
どんな言語だって1つの関数が100行超えるようならやめるべきだし
超えるなら別関数(別コマンド)にすればいいのはシェルスクリプトでも同じ
955(1): 2020/03/22(日)05:06 ID:5UlsRo7e(1/2) AAS
>どんな言語だって1つの関数が100行超えるようならやめるべきだし
これもよくわからんけどなあ
最初に一回だーっと降りてくるだけの処理を
こまこまこまこま関数に分けたがる奴はなんなん?と思う
シェルスクリプトなんか大体そういう処理だけだろ?
956(1): 2020/03/22(日)05:49 ID:7aOor4nW(2/4) AAS
>>955
え?シェルスクリプトで外部コマンド使わんの?
最初に一回だーっと降りてくるだけの処理でも
その中の一部を外部コマンドとか関数にするでしょ?
再利用するとか、そこだけ実行できるようにするために。
957(1): 2020/03/22(日)05:55 ID:7aOor4nW(3/4) AAS
あと「関数や処理が長くなったら分けるよね」という
技術的な話に対して「分ける」or「分けない」とは無関係な
「俺はシェルスクリプトで長い処理は作らない」という
個人的な話をごちゃまぜにしないでくれ
「分けるよね?」の答えにはなってないから。
958(1): 2020/03/22(日)07:35 ID:5UlsRo7e(2/2) AAS
>>956
引用部分をちゃんと読んでくれよ
あんたが書いた文だぞ?
>>957
>「分けるよね?」の答えにはなってないから。
長さじゃ分けない。
959: 2020/03/22(日)07:52 ID:7aOor4nW(4/4) AAS
>>958
じゃあ何で分けるのさ?
960: 2020/03/22(日)09:08 ID:c5TE3idF(1/5) AAS
>どんな言語だって1つの関数が100行超えるようならやめるべきだし
を何度読んでも、そのとおりとしか?
961: 2020/03/22(日)10:24 ID:I5Su+SV6(1/5) AAS
GoogleのStyle Guideには100行超えるようなスクリプトを書いてるなら
今すぐもっと構造化された言語で書き直すべきって書いてる
>If you are writing a script that is more than 100 lines long,
>or that uses non-straightforward control flow logic,
>you should rewrite it in a more structured language now.
関数の長さじゃなくスクリプトの長さの話
似てるけど持ってる意味合いが違う
962(2): 2020/03/22(日)12:56 ID:tFupwLj7(1) AAS
シェルスクリプトも十分構造化されてると思うんだけどねぇ。
まあ,Pythonとかに比べれば,メッソドや継承とかそういう概念が備わってない意味では低級だけど,
「シェルスクリプトで巨大なプログラムを書くべきでない理由」として
「シェルスクリプトは*構造的*でないから」ってのはちょっと頂けない。
シェルスクリプトには構造化プログラミングを支援する機能(函数定義,局所変数)が備わってる以上,
構造化されてないシェルスクリプトがあったならそれは書いた人間の責任であって,
もっと言うとそういうシェルスクリプトを書くような人間は,
Pythonであっても,用意されたオブジェクト指向の機能なんて使わずに,ひたすら手続き的なプログラムを書くだろう。
963: 2020/03/22(日)13:04 ID:c5TE3idF(2/5) AAS
>>962
そういうことだよね。
シェルスクリプトで書いたそのコードを
他の言語で書いたところで、ロジックが同じなら行数も同じ
964: 2020/03/22(日)14:10 ID:An20OwGu(1) AAS
>>952
懇切丁寧な解説が初心者向けじゃないなら何なのさ
常識しか載ってなくてつまらなかった?
965: 2020/03/22(日)14:27 ID:Hw+To0D5(1/3) AAS
何を絡んでいるんだか
966: 2020/03/22(日)14:32 ID:Hw+To0D5(2/3) AAS
結論、初心者も視野に大いに入っている規約。ある意味初心者に合わせた
だから、100行についてあれこれ議論してもしょうがないよ、Googleにコード提供するわけでもなし変だと思うならふーんと無視だなw
967(2): 2020/03/22(日)15:21 ID:I5Su+SV6(2/5) AAS
>>962
同じロジックでも行数は全然違ってくるよ
shやbashには型がないのと原始的エラーハンドリング機構しかないのが大きい
他にも高階関数がまともに書けないし
一般的な言語に用意されてる便利メソッドもないし
モジュール化機能も関数とファイル以外に無い
読みやすさ、メンテしやすさ、テストのしやすさの点から
シェルスクリプトの限界を認識して節度を持って使おうねってのが
Googleのガイドの意図だと思う
968: 2020/03/22(日)15:21 ID:I5Su+SV6(3/5) AAS
>>967
アンカ間違えた
969(2): 2020/03/22(日)15:48 ID:c5TE3idF(3/5) AAS
>>967
型がないのは他にも有るだろ
エラーハンドリングも例外がない言語はいくらでもある
高階関数はevalで関数をよびだすことができるので同等のことは出来る
メソッドはオブジェクト指向じゃないから関数として
外部コマンド=シェルスクリプトの関数なんだからたくさんある
モジュール化機能って関数とファイル以外に何が必要なんだ?
> シェルスクリプトの限界を認識して
その限界の理由がはっきり書かれてない。
読みやすさが悪い、メンテしやすさが悪い、テストのしやすさが悪い
省1
970(1): 2020/03/22(日)16:56 ID:I5Su+SV6(4/5) AAS
>>969
>型がないのは他にも有るだろ
例えば?
>エラーハンドリングも例外がない言語はいくらでもある
最近の言語で例外もパターンマッチもないのはGoくらい
Goはそれもあって同じことする場合でも他言語よりも行数が多くなりがち
それでも型と多重代入があるからシェルスクリプトよりはマシ
>高階関数はevalで関数をよびだすことができるので同等のことは出来る
それがまともに書けるという認識なら何を言っても無駄っぽいね
どうぞシェルスクリプトで頑張ってください
971(1): 2020/03/22(日)17:17 ID:I7uR5y3I(1) AAS
>>969
機能がある/ない、できる/できないの2択の話でなくて、規模が大きくなったり構造が複雑になったらそれに適した使いやすい言語を使うと良いというだけの話だろうに。
972(1): 2020/03/22(日)17:52 ID:9SijoV71(1) AAS
シェルスクリプトの可読性・保守性について問題ないと思ってる人ってシェルスクリプト以外でコード書いてないのだろうとしか思えない
973: 2020/03/22(日)18:47 ID:Hw+To0D5(3/3) AAS
誰もそんなこと言ってないと思うけど
974(1): 2020/03/22(日)22:29 ID:c5TE3idF(4/5) AAS
>>970
> 例えば?
Perl
> 最近の言語で
いきなり言い訳から入るスタンスかw C言語もないですよね
> それがまともに書けるという認識なら
反論できてないじゃんw
>>971
そこに行数は関係ないよね。やってることが同じなら他の言語に変えても同じこと
975: 2020/03/22(日)22:31 ID:c5TE3idF(5/5) AAS
>>972
言語で何かが標準サポートされないと
可読性や保守性を保てないんでしょ?
可読性や保守性なんて言語関係ないのに
自分に能力がない理由を言語のせいにするな
976(1): 2020/03/22(日)23:46 ID:I5Su+SV6(5/5) AAS
>>974
>Perl
Perlには型あるよ
型の有無も分からないレベルなら比較しても意味ないから
もう少しプログラミング言語を勉強してから出直してくれ
977(1): 2020/03/23(月)00:00 ID:FfORFm5F(1/2) AAS
>>976
配列とか数値なら、シェルスクリプトにもありますよw
man basnより
declare [-aAfFgilrtux] [-p] [name[=value] ...]
-a 各 name は配列変数です (前述の 配列 を参照)。
-A 各 name は連想配列変数です (前述の 配列 を参照)。
-i 変数を整数として扱います。
978: 2020/03/23(月)00:28 ID:nPflIkhM(1/2) AAS
basn ってw 落ち着けよw
979: 2020/03/23(月)00:30 ID:FfORFm5F(2/2) AAS
どうでもいい指摘はいらんがな
980: 2020/03/23(月)01:15 ID:TYte82vJ(1) AAS
次スレ
シェルスクリプト総合 その33
2chスレ:tech
981: 2020/03/23(月)01:16 ID:nPflIkhM(2/2) AAS
訂正しとけよw
982(3): 2020/03/23(月)10:39 ID:iyDg9ARV(1) AAS
>>977
>配列とか数値なら、シェルスクリプトにもありますよw
型がどういうものか何も知らないんだな
マジでもう少し勉強したほうがいいよ
結局シェルスクリプトしかできなくて他の言語使えと言われると困るから
「シェルスクリプトでもできるもん」て必死に言い訳してるだけ
VBAしかできないVBAerと同じで完全に老害だぞ
983(1): 2020/03/23(月)10:58 ID:pXU5nyzo(1) AAS
あくまで「効率的に」できるかどうかの話をしているはずなのになぜか言語仕様上できるかで語るからおかしなことになる
984: 2020/03/23(月)12:00 ID:nemSJghh(1) AAS
「(俺はシェルスクリプトしか書けないから)シェルスクリプトで書くのがもっとも効率的だ」
985: 2020/03/23(月)12:53 ID:SU+/TFOc(1) AAS
>>982
ある言語に型がある、って、どういう挙動をしたらそう言えるの?
Bashでは事実「これは整数だよ」と(少なくともプログラマに対して)そう言えるんだけど、それじゃだめなの?
逆にPythonは変数宣言する時に型を明示しなくてもいいけど
一般に「型を持つ」って言われるよね。
986: 2020/03/23(月)13:15 ID:cSlylFOX(1) AAS
それはちょっと違うな
双方とも、話が噛み合ってなさすぎ
987: 2020/03/23(月)13:17 ID:xNveXtQI(1) AAS
比較検討の対象範囲が狭い人が堕ちる地獄だね
傍から見ると、視認可能な穴に自ら飛び込んでいるように映る
988: 2020/03/23(月)13:55 ID:1yvBsEB/(1/2) AAS
>>982
声が震えてるぞw
知らないんだな(くっ何も言い返せない)
捨て台詞かよwww
自称知ってるお前さん、ちゃんと説明してみぃ?
989(1): 2020/03/23(月)13:56 ID:1yvBsEB/(2/2) AAS
>>983
効率的に出来なかったら何がだめなのか?
今の話に「効率」がどう関係するのか?
説明は?
990(1): 2020/03/23(月)14:38 ID:OwPrjqjt(1/2) AAS
>>932
> 型がどういうものか何も知らないんだな
> マジでもう少し勉強したほうがいいよ
説明なしに相手をディスるだけのレスはやめとけ
マウント取れないし、捨て台詞的で負けを認めたと取られかねない
仮にマウント取れても所詮匿名の掲示板なんで dat 落ちすればそれまで
>>989
> 今の話に「効率」がどう関係するのか?
話の発端は「もっと構造化された言語で書き直すべき」でしょ?
揚げ足取りするなとは言わんが本題を忘れるほど熱中すんな
991(2): 2020/03/23(月)14:41 ID:cOy+SXou(1) AAS
>>990
シェルスクリプトが得意な分野
(コマンドの組み合わせで行う処理)は
シェルスクリプトが一番効率がいいんですよ。
他の言語で同じことを書いたら行数が増えます。
例えばsed
992: 2020/03/23(月)16:50 ID:OwPrjqjt(2/2) AAS
>>991
仲裁に入っただけの俺にそんな返しされても困る
993: 2020/03/23(月)17:22 ID:gNyotYW5(1) AAS
>>982
予め断っておくが,
俺自身は「シェルスクリプトは万能」だなんて思ってない。
でも,プログラミング言語においてどういうものを「型」といって
どういうものを「型」と言わないのかを知りたい。
少なくともBashのdeclare組み込みコマンドには型機能が備わってるように見えるんだけど……
外部リンク[html]:www.gnu.org
例えば「整数」として取り扱う場合には算術演算が記述できる,空だけど配列変数として指定できる,
みたいな機能って,「型」って言わないの?
994: 2020/03/24(火)01:28 ID:dWYBHKWQ(1) AAS
>>947
それ、スペースの入り方によってはうまくいかんよね。
やっぱ普通にダブルクォーテーションで括った方が良いのでは?
995(1): 2020/03/24(火)22:04 ID:/ZNMWK8v(1) AAS
シェルスクリプトで完結することはシェルスクリプトでやったほうがいいと思うわ。
プログラミング言語みたいにいちいち環境を構築しなくていいからね。
996: 2020/03/25(水)08:34 ID:OJUUwfHr(1) AAS
>>991
sed楽だなー
改行も当然消せるよな、あれ、なんか面倒くせーぞ
そういう時はtr使うのか、なーんだよ
みたいな事がよくある
997(1): 2020/03/25(水)09:05 ID:CcGCNzeN(1) AAS
>>995
人によって"シェルスクリプトで完結する"感覚が違うのが問題の始まり
998: 2020/03/25(水)09:59 ID:C+CVbv8A(1/2) AAS
>>997
シェルスクリプトでコードが大きくなったら別言語でやる
というのは、単にシェルスクリプトをちゃんと勉強してないからだと思う
もともとシェルスクリプトでは実装が難しい問題であれば
最初からシェルスクリプトは使わない。例えばバイナリファイルとして
特定の位置のデータを読み書きするとか
でも最初にシェルスクリプトでやろうと思った時は、
シェルスクリプトでやるのが適した問題だったのだろう。
その後、やっぱり他の言語で〜って言い出す時は、
シェルスクリプトで作る能力がないことの言い訳だと思う
999(1): 2020/03/25(水)10:11 ID:Y57VqPvD(1) AAS
読めてないのに参加するなよ
1000: 2020/03/25(水)10:25 ID:C+CVbv8A(2/2) AAS
>>999
おまえには理解できんだけさ
1001(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 152日 10時間 16分 29秒
1002(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
省4
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.258s*