シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
探検
シェルスクリプト総合 その34
■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
230デフォルトの名無しさん
2020/09/16(水) 06:01:38.56ID:NJW1Qx1P だからといって外部コマンドのオプションやら文法の話をしたって意味ない
そういうのはmanページ見ろで終わる話
そういうのはmanページ見ろで終わる話
231デフォルトの名無しさん
2020/09/16(水) 10:12:38.47ID:+0jueX8G シェルスクリプトにこだわることの是非はともかく,
このスレに住み着くのは理があるわけだけど,
一方でPythonやRubyに固執している人が
このスレに居座りつづける理由が不明。
このスレはシェルスクリプトのことを話すスレなんだから,
Perl,Python,Ruby,Goなんかにこだわってても
ストレス溜まるだけだと思うんだけど……。
しかも不毛だしw
このスレに住み着くのは理があるわけだけど,
一方でPythonやRubyに固執している人が
このスレに居座りつづける理由が不明。
このスレはシェルスクリプトのことを話すスレなんだから,
Perl,Python,Ruby,Goなんかにこだわってても
ストレス溜まるだけだと思うんだけど……。
しかも不毛だしw
232デフォルトの名無しさん
2020/09/16(水) 10:14:49.79ID:+0jueX8G >>229
過疎化してなにか問題あるか?
シェルスクリプトの構文で質問がある場合は
ageればいいだけだし,
技術系のスレは勢いがなくても一定数の閲覧があるんだから
それで全く問題ない。
もしかしてなんJとかその辺りと同じような考えで
「過疎化する」=「悪」みたいに捉えちゃってる?
過疎化してなにか問題あるか?
シェルスクリプトの構文で質問がある場合は
ageればいいだけだし,
技術系のスレは勢いがなくても一定数の閲覧があるんだから
それで全く問題ない。
もしかしてなんJとかその辺りと同じような考えで
「過疎化する」=「悪」みたいに捉えちゃってる?
233デフォルトの名無しさん
2020/09/16(水) 10:33:38.10ID:+Zum6F6u シェルスクリプトとPythonやRubyの使い方は全く違っていて
シェルスクリプトの代替にはならないんだよ
だってPythonやRuby言語がシェルになるかい?
そういうのもあるみたいだけど使わないだろ
lslの代わりにPythonやRubyの関数を使えってことだよ
やるかい?
シェススクリプトはそういう手作業の操作をスクリプトにまとめたもので
「手作業の操作」そのものであることに価値があるんだよ
シェルスクリプトの代替にはならないんだよ
だってPythonやRuby言語がシェルになるかい?
そういうのもあるみたいだけど使わないだろ
lslの代わりにPythonやRubyの関数を使えってことだよ
やるかい?
シェススクリプトはそういう手作業の操作をスクリプトにまとめたもので
「手作業の操作」そのものであることに価値があるんだよ
234デフォルトの名無しさん
2020/09/16(水) 10:34:04.05ID:+Zum6F6u × lslの代わりにPythonやRubyの関数を使えってことだよ
○ ls -alの代わりに
○ ls -alの代わりに
235デフォルトの名無しさん
2020/09/16(水) 10:40:48.87ID:2aHyKEnC シェルスクリプトを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
236デフォルトの名無しさん
2020/09/16(水) 10:44:06.38ID:BkyZoSl2 >>235
シェルスクリプトを使ったほうがいいケースや使うべきであるケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
シェルスクリプトを使ったほうがいいケースや使うべきであるケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
237デフォルトの名無しさん
2020/09/16(水) 10:52:37.21ID:MNPDZagX >>223
当然その他個別に必要な要素はDockerfileに書き出すけど、実運用でコンテナを使えるのがDockerHubやオーケストレーションツールを含めた現代コンテナ運用の強みだし革新性だと思ってるよ
なんていうか「シェルスクリプトの文法や仕様が嫌い過ぎてシェルスクリプト数行で済むものにも別の言語を導入して書こうとする1byteもシェルスクリプトを書きたくない人間」に対してシェルスクリプトの可搬性や有用性・必要性を説こうとしてる人と
「シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件がある人間」に対して別の言語や環境で扱うのも選択肢だよって説こうとしてる人が争ってる感
当然その他個別に必要な要素はDockerfileに書き出すけど、実運用でコンテナを使えるのがDockerHubやオーケストレーションツールを含めた現代コンテナ運用の強みだし革新性だと思ってるよ
なんていうか「シェルスクリプトの文法や仕様が嫌い過ぎてシェルスクリプト数行で済むものにも別の言語を導入して書こうとする1byteもシェルスクリプトを書きたくない人間」に対してシェルスクリプトの可搬性や有用性・必要性を説こうとしてる人と
「シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件がある人間」に対して別の言語や環境で扱うのも選択肢だよって説こうとしてる人が争ってる感
238デフォルトの名無しさん
2020/09/16(水) 10:58:35.61ID:VpAz8kB7 格言「すべての道は、Vagrant に通ず」
Homebrew が、何十年も他の言語で書かれないわけ
つまり、システム構築運用は、できる限りRuby で書く。
シンプルなものに限って、シェルスクリプト
Homebrew が、何十年も他の言語で書かれないわけ
つまり、システム構築運用は、できる限りRuby で書く。
シンプルなものに限って、シェルスクリプト
239デフォルトの名無しさん
2020/09/16(水) 11:10:41.03ID:Uxf3IaQ5 このスレのおかげでシェルだけでWebサイト作れました!
RubyやPythonなんて学ぶ価値無いですね
RubyやPythonなんて学ぶ価値無いですね
240デフォルトの名無しさん
2020/09/16(水) 11:36:55.73ID:+0jueX8G >>235
PythonやRubyを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術へ
こうですか? 分かりません!
PythonやRubyを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術へ
こうですか? 分かりません!
241デフォルトの名無しさん
2020/09/16(水) 11:38:45.59ID:+0jueX8G いいかげん下らなくなってきたけど,ともかく
「シェルスクリプトにこだわるな! Python・Rubyを使え!」
という主張は同時に「Python・Rubyにこだわっている」わけなんだから,
いくら「こだわり」をバカにしてマウント取ったところで,
ものすごい勢いで自分に跳ね返ってくるだけっていうねw
「シェルスクリプトにこだわるな! Python・Rubyを使え!」
という主張は同時に「Python・Rubyにこだわっている」わけなんだから,
いくら「こだわり」をバカにしてマウント取ったところで,
ものすごい勢いで自分に跳ね返ってくるだけっていうねw
242デフォルトの名無しさん
2020/09/16(水) 11:58:19.63ID:sxVBKKDL え、両方使いなよって主張じゃないの?
そういうレスした本人じゃないから知らんけど
そういうレスした本人じゃないから知らんけど
243デフォルトの名無しさん
2020/09/16(水) 12:04:24.33ID:+Zum6F6u >>237
> 「シェルスクリプトの文法や仕様でウッとなってしまう
それってようするにオブジェクト指向言語にそまってて
関数型言語に抵抗があるやつと一緒なんだわ
パラダイムが同じならそれもわかるけど、シェルスクリプトは異なるパラダイムなので
単に異なるパラダイムのものをつけつけられないだけ
> 「シェルスクリプトの文法や仕様でウッとなってしまう
それってようするにオブジェクト指向言語にそまってて
関数型言語に抵抗があるやつと一緒なんだわ
パラダイムが同じならそれもわかるけど、シェルスクリプトは異なるパラダイムなので
単に異なるパラダイムのものをつけつけられないだけ
244デフォルトの名無しさん
2020/09/16(水) 12:09:15.41ID:+Zum6F6u >>238
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hate
nablog.com/entry/2020/03/03/100000
> 将来的にmacOSデフォルトにRubyやPythonが含まれなくなる (参考リンク)。
こうなる
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hate
nablog.com/entry/2020/03/03/100000
> 将来的にmacOSデフォルトにRubyやPythonが含まれなくなる (参考リンク)。
こうなる
245デフォルトの名無しさん
2020/09/16(水) 12:39:23.56ID:BkyZoSl2 >>237
シェルスクリプト自体に文句があるのはしゃあない(つーか、ないヤツはおらんやろw)が、全否定したらこのスレではただのあらしでしかない。
さらに、最近の一部のヤツはとくにバカっぽかったからな。
シェルスクリプト自体に文句があるのはしゃあない(つーか、ないヤツはおらんやろw)が、全否定したらこのスレではただのあらしでしかない。
さらに、最近の一部のヤツはとくにバカっぽかったからな。
246デフォルトの名無しさん
2020/09/16(水) 12:41:43.36ID:0bH7BLR9 状況に応じて使う道具を変えなよって言われてるのに、PythonやRubyを持ち出して否定したがるのはそれらを使えないことへのコンプレックスが強いから
どの技術でもその限界や短所を理解してないやつが多ければ要注意
どの技術でもその限界や短所を理解してないやつが多ければ要注意
247デフォルトの名無しさん
2020/09/16(水) 12:42:57.45ID:uLph0UBy シェススクリプトへの文句というより
シェルスクリプトが改善されないことに文句がある
何年停滞してるんだ
シェルスクリプトが改善されないことに文句がある
何年停滞してるんだ
248238
2020/09/16(水) 12:55:13.00ID:VpAz8kB7 ハーバード大学には、Ruby on Rails の授業がある。
他の言語だと、数年以上遅れて、その間にシェアを取られてしまうから
他の言語では、複雑さが並みじゃないから、簡単に作れない。
かなりの費用・期間が掛かるから、そういうプロジェクトを起ち上げられない
例えば、Ruby以外のプロジェクトで、半年過ぎると取りやめになる。
サーバー側言語では、Ruby, Go しか使われない
他の言語だと、数年以上遅れて、その間にシェアを取られてしまうから
他の言語では、複雑さが並みじゃないから、簡単に作れない。
かなりの費用・期間が掛かるから、そういうプロジェクトを起ち上げられない
例えば、Ruby以外のプロジェクトで、半年過ぎると取りやめになる。
サーバー側言語では、Ruby, Go しか使われない
249デフォルトの名無しさん
2020/09/16(水) 13:03:02.60ID:D69h0Ren PythonとかRubyみたいな簡単な言語使ってる雑魚がイキってるのマジで笑える
250238
2020/09/16(水) 13:04:02.76ID:VpAz8kB7 例えば、Ruby の数値リテラルには、_ を含めることができる
1_000_000_000 # 1000000000
0xffff_ffff # 0xffffffff
この機能がないと、下みたいに、コメントを書かないといけないし、確かめるのも大変
1000000000 # 1_000_000_000
Ruby では、こういうように、バグを減らす工夫をしている。
だから、こういうことを思いつく日本人は、smart だって言われる
1_000_000_000 # 1000000000
0xffff_ffff # 0xffffffff
この機能がないと、下みたいに、コメントを書かないといけないし、確かめるのも大変
1000000000 # 1_000_000_000
Ruby では、こういうように、バグを減らす工夫をしている。
だから、こういうことを思いつく日本人は、smart だって言われる
251デフォルトの名無しさん
2020/09/16(水) 13:11:20.74ID:MNPDZagX >>243
どこの誰の事を異なるパラダイムを受け付けられない人間としてるのか知らないけど、パラダイムが異なれば当然向き不向きがあるよね?
その上で私は
> シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件
っていう「シェルスクリプトのパラダイムに向かない作業」を話題の前提にしてる人が他の言語を提案してるんじゃないの?って話しかしてないのよ
「何らかの作業をシェルスクリプトのパラダイムに向かない作業だと感じるのは、そいつがパラダイムを受け付けないだけで不向きな作業だからではない」という可能性は間違いなくある
ただ可能性はあるけれど恒真とは思わない
私がシェルスクリプトに向いてない作業はあると思ってるから
もしあなたがシェルスクリプトに向かない作業なんてないと思ってるなら何も言わない
この先は気持ちの問題なので
どこの誰の事を異なるパラダイムを受け付けられない人間としてるのか知らないけど、パラダイムが異なれば当然向き不向きがあるよね?
その上で私は
> シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件
っていう「シェルスクリプトのパラダイムに向かない作業」を話題の前提にしてる人が他の言語を提案してるんじゃないの?って話しかしてないのよ
「何らかの作業をシェルスクリプトのパラダイムに向かない作業だと感じるのは、そいつがパラダイムを受け付けないだけで不向きな作業だからではない」という可能性は間違いなくある
ただ可能性はあるけれど恒真とは思わない
私がシェルスクリプトに向いてない作業はあると思ってるから
もしあなたがシェルスクリプトに向かない作業なんてないと思ってるなら何も言わない
この先は気持ちの問題なので
252デフォルトの名無しさん
2020/09/16(水) 14:56:05.79ID:+0jueX8G ほとんどの人が「別にPythonでもRubyでもいいけど,
そうじゃない選択肢としてシェルがある」というだけの話をしてるのに
「いまだにシェルを使ってるのは時代遅れ!」
「シェルにこだわるな!Python・Rubyを使え!(こだわり)」
となるのはなぜなのか。
あと一部の奴が「シェル最高!世の中にはこれしか要らない!」みたいな
主張をしてるのも問題。
そうじゃない選択肢としてシェルがある」というだけの話をしてるのに
「いまだにシェルを使ってるのは時代遅れ!」
「シェルにこだわるな!Python・Rubyを使え!(こだわり)」
となるのはなぜなのか。
あと一部の奴が「シェル最高!世の中にはこれしか要らない!」みたいな
主張をしてるのも問題。
253デフォルトの名無しさん
2020/09/16(水) 15:03:48.26ID:BkyZoSl2254デフォルトの名無しさん
2020/09/16(水) 15:06:08.22ID:BkyZoSl2255デフォルトの名無しさん
2020/09/16(水) 18:42:23.15ID:vxZ/INdB 技術力のある人はシェルスクリプトの短所や限界をよく理解している
Google曰く
If you are writing a script that is more than 100 lines long,
you should rewrite it in a more structured language now.
https://google.github.io/styleguide/shellguide.html#s1.2-when-to-use-shell
GitLab曰く
we recommend staying away from shell scripts as much as possible.
A language like Ruby or Python is almost always a better choice.
https://docs.gitlab.com/ee/development/shell_scripting_guide/#avoid-using-shell-scripts
Google曰く
If you are writing a script that is more than 100 lines long,
you should rewrite it in a more structured language now.
https://google.github.io/styleguide/shellguide.html#s1.2-when-to-use-shell
GitLab曰く
we recommend staying away from shell scripts as much as possible.
A language like Ruby or Python is almost always a better choice.
https://docs.gitlab.com/ee/development/shell_scripting_guide/#avoid-using-shell-scripts
256デフォルトの名無しさん
2020/09/16(水) 19:16:11.22ID:PhvdJ7XH >>255
全てに当てはまることだけど、理由が書いてないコーディング規約はクソ
全てに当てはまることだけど、理由が書いてないコーディング規約はクソ
257デフォルトの名無しさん
2020/09/16(水) 19:59:30.26ID:YseoXyv4 そういやユニケージで作られた例のシステム、ユニケージを捨てて
全部作り直したそうだな
全部作り直したそうだな
258デフォルトの名無しさん
2020/09/16(水) 20:58:02.47ID:VpAz8kB7 同じディレクトリ内にある、yarn.js ファイルを呼ぶラッパーである、yarn ファイル・コマンド
#!/bin/sh
argv0=$(echo "$0" | sed -e 's,\\,/,g')
basedir=$(dirname "$(readlink "$0" || echo "$argv0")")
case "$(uname -s)" in
Darwin) basedir="$( cd "$( dirname "$argv0" )" && pwd )";;
Linux) basedir=$(dirname "$(readlink -f "$0" || echo "$argv0")");;
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
command_exists() { command -v "$1" >/dev/null 2>&1; }
if command_exists node; then
if [ "$YARN_FORCE_WINPTY" = 1 ] || command_exists winpty && test -t 1; then
winpty node "$basedir/yarn.js" "$@"
else
exec node "$basedir/yarn.js" "$@"
fi
ret=$?
# Debian, Ubuntu では、node ではなく、nodejs
elif command_exists nodejs; then
exec nodejs "$basedir/yarn.js" "$@"
ret=$?
else
>&2 echo 'Yarn requires Node.js 4.0 or higher to be installed.'
ret=1
fi
exit $ret
#!/bin/sh
argv0=$(echo "$0" | sed -e 's,\\,/,g')
basedir=$(dirname "$(readlink "$0" || echo "$argv0")")
case "$(uname -s)" in
Darwin) basedir="$( cd "$( dirname "$argv0" )" && pwd )";;
Linux) basedir=$(dirname "$(readlink -f "$0" || echo "$argv0")");;
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
command_exists() { command -v "$1" >/dev/null 2>&1; }
if command_exists node; then
if [ "$YARN_FORCE_WINPTY" = 1 ] || command_exists winpty && test -t 1; then
winpty node "$basedir/yarn.js" "$@"
else
exec node "$basedir/yarn.js" "$@"
fi
ret=$?
# Debian, Ubuntu では、node ではなく、nodejs
elif command_exists nodejs; then
exec nodejs "$basedir/yarn.js" "$@"
ret=$?
else
>&2 echo 'Yarn requires Node.js 4.0 or higher to be installed.'
ret=1
fi
exit $ret
259デフォルトの名無しさん
2020/09/16(水) 20:59:44.06ID:PhvdJ7XH ユニケージはシェルスクリプトじゃないからなぁ
シェルスクリプトを使って作られたCOBOL用関数みたいなもん
ユニケージを使った途端、シェルスクリプト言語から
COBOL言語に開発スタイルが変わる
シェルスクリプトを使って作られたCOBOL用関数みたいなもん
ユニケージを使った途端、シェルスクリプト言語から
COBOL言語に開発スタイルが変わる
260デフォルトの名無しさん
2020/09/16(水) 21:09:23.04ID:PhvdJ7XH シェルスクリプトを始めた頃は
> usp Tukubaiは短期間低コストで企業システムを構築するエンタープライズ向けコマンド群。
> ユニケージ開発手法で利用するコマンド群であり、
https://uec.usp-lab.com/tukubai_man
に便利なコマンドがあるんじゃないか?って思ったんだよ
実際に見てみたら完全にゴミ
> ctail(1) ファイルの末尾n行を削って出力
例えばこれとかhead -n -10でいいじゃんとか
> count(1) 同じキーの行数をカウント
それをawkでやるのがシェルスクリプトでしょとか
そういうのばかりで、
根底に CSVならぬ、空白区切りのファイル形式を使うという前提があって
そのデータ操作するためのコマンド群でしかないことに気付いた
> usp Tukubaiは短期間低コストで企業システムを構築するエンタープライズ向けコマンド群。
> ユニケージ開発手法で利用するコマンド群であり、
https://uec.usp-lab.com/tukubai_man
に便利なコマンドがあるんじゃないか?って思ったんだよ
実際に見てみたら完全にゴミ
> ctail(1) ファイルの末尾n行を削って出力
例えばこれとかhead -n -10でいいじゃんとか
> count(1) 同じキーの行数をカウント
それをawkでやるのがシェルスクリプトでしょとか
そういうのばかりで、
根底に CSVならぬ、空白区切りのファイル形式を使うという前提があって
そのデータ操作するためのコマンド群でしかないことに気付いた
261デフォルトの名無しさん
2020/09/16(水) 21:16:09.82ID:PhvdJ7XH ユニケージのコマンドに絶望した後
クソコマンドをまともにしてやろうと思ったが
クソな理由はコマンドではなくデータ形式だったので
どうしようもないというねw
データ形式を空白区切り前提にしなければ、
通常のシェルスクリプトで使うコマンドを使うことになるが
ユニケージのコマンドとは全く異なる仕様になる
直しようがない
クソコマンドをまともにしてやろうと思ったが
クソな理由はコマンドではなくデータ形式だったので
どうしようもないというねw
データ形式を空白区切り前提にしなければ、
通常のシェルスクリプトで使うコマンドを使うことになるが
ユニケージのコマンドとは全く異なる仕様になる
直しようがない
262デフォルトの名無しさん
2020/09/16(水) 21:31:53.79ID:fQIibdhg263デフォルトの名無しさん
2020/09/16(水) 21:36:41.16ID:66kQJWEh264デフォルトの名無しさん
2020/09/16(水) 22:04:09.41ID:RIbUq78m ポイント? なんでそう思ったの?
根拠がないから具体的ではないだけ
根拠がないから具体的ではないだけ
265デフォルトの名無しさん
2020/09/16(水) 22:36:59.59ID:+0jueX8G どうでもいいんですけど,
シェルスクリプト以外の話題なら他所でやってもらえません?
もちろんシェルスクリプトの存在論も含めて。
テンプレくらい読んでくれよな〜頼むよ〜
シェルスクリプト以外の話題なら他所でやってもらえません?
もちろんシェルスクリプトの存在論も含めて。
テンプレくらい読んでくれよな〜頼むよ〜
266デフォルトの名無しさん
2020/09/16(水) 22:48:58.53ID:AIq8Iw+F 長々とどうでもいいこと書き綴ってスレ荒らしてたのお前じゃん
267デフォルトの名無しさん
2020/09/16(水) 22:56:04.59ID:BkyZoSl2 >>264
わかる人にはわかる。
わからない人のほうがその理由を内省するべき。
ただ、Bashは関数と連想配列のおかげで、それなりの構造化はできてるな。
逆に言うと、よっぽどややこしいデータ構造を組むのでなければ、シェルスクリプトでも可、ってことか。w
わかる人にはわかる。
わからない人のほうがその理由を内省するべき。
ただ、Bashは関数と連想配列のおかげで、それなりの構造化はできてるな。
逆に言うと、よっぽどややこしいデータ構造を組むのでなければ、シェルスクリプトでも可、ってことか。w
268デフォルトの名無しさん
2020/09/17(木) 05:40:41.40ID:arhYEtgP269デフォルトの名無しさん
2020/09/17(木) 06:53:22.12ID:7lkKgDUb まあ結局
「シェルスクリプトでおかしな書き方をするやつは
Pythonで書こうがRubyを使って メタプログラミング() をしようが
下手な書き方をすることに変わりない」
ってことよね。
「シェルスクリプトでおかしな書き方をするやつは
Pythonで書こうがRubyを使って メタプログラミング() をしようが
下手な書き方をすることに変わりない」
ってことよね。
270デフォルトの名無しさん
2020/09/17(木) 07:33:41.05ID:hnEDQboZ シェルスクリプトから○○言語に変更したってやつは
変更した結果どうなったのか、そのコードを見てみたいんだが
シェルスクリプトで一体何をしていたのか?
変更した結果どうなったのか、そのコードを見てみたいんだが
シェルスクリプトで一体何をしていたのか?
271デフォルトの名無しさん
2020/09/17(木) 09:41:38.06ID:v24DPghR Pythonさえやっておけばシェルスクリプトやる必要ないってことじゃないですかやったー!
272デフォルトの名無しさん
2020/09/17(木) 09:46:01.87ID:HvzSxf7x Pythonの関数(特別に作られたものではなく標準関数)を使うという前提の
シェルが作れるものなら作ってみて欲しいね
Python以外でもいいけど
シェルが作れるものなら作ってみて欲しいね
Python以外でもいいけど
273デフォルトの名無しさん
2020/09/17(木) 09:53:36.15ID:d9Y9RH6u274デフォルトの名無しさん
2020/09/17(木) 10:32:54.56ID:chlfrU3v275デフォルトの名無しさん
2020/09/17(木) 10:53:19.56ID:PVLBY2eY >>267
POSIX準拠じゃないから使えないねw
POSIX準拠じゃないから使えないねw
276デフォルトの名無しさん
2020/09/17(木) 11:04:29.11ID:d9Y9RH6u277デフォルトの名無しさん
2020/09/17(木) 11:05:00.12ID:Ebl/PrBy bash特有の機能を使おうと思った時点で
それはシェルスクリプトでやるべきことじゃないんだろうな
もちろんちゃんとシェルスクリプトのスタイル(関数型)でコーディングするのは大前提
ようするにシェルスクリプトはPOSIX準拠の機能で十分なんだよ
それはシェルスクリプトでやるべきことじゃないんだろうな
もちろんちゃんとシェルスクリプトのスタイル(関数型)でコーディングするのは大前提
ようするにシェルスクリプトはPOSIX準拠の機能で十分なんだよ
278デフォルトの名無しさん
2020/09/17(木) 11:47:37.44ID:6qIvJTFZ シェルスクリプトのスタイルは関数型!
さすがシェルスクリプターの考えることは次元が違うぜ
さすがシェルスクリプターの考えることは次元が違うぜ
279デフォルトの名無しさん
2020/09/17(木) 12:00:55.65ID:Ebl/PrBy >>278
https://qiita.com/piroor/items/77233173707a0baa6360
ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
関数型言語にも見られる特徴です。14
そう考えると、シェルスクリプトで凝った事をしようとする人があまり多くないのも頷けます。
「関数型言語は難しい」と言われる事が多いですが、他の言語とパラダイムが違う言語だと思えば、
これまでのプログラミングのパラダイムに囚われたままでは理解が進まないのも当然です。
14. 実際、関数型言語が得意な人にこの説を披露してみた所、
「関数型言語というのはストリーム型のデータを処理するという所が
キモ(なので、解釈としてそう外してはいない)」という感じの感想を頂きました。 ?
https://qiita.com/piroor/items/77233173707a0baa6360
ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
関数型言語にも見られる特徴です。14
そう考えると、シェルスクリプトで凝った事をしようとする人があまり多くないのも頷けます。
「関数型言語は難しい」と言われる事が多いですが、他の言語とパラダイムが違う言語だと思えば、
これまでのプログラミングのパラダイムに囚われたままでは理解が進まないのも当然です。
14. 実際、関数型言語が得意な人にこの説を披露してみた所、
「関数型言語というのはストリーム型のデータを処理するという所が
キモ(なので、解釈としてそう外してはいない)」という感じの感想を頂きました。 ?
280デフォルトの名無しさん
2020/09/17(木) 12:33:52.60ID:7lkKgDUb 沈黙してて草
281デフォルトの名無しさん
2020/09/17(木) 12:45:52.84ID:NHfa1bvj 関数型Elixir は、map・パイプラインばっかり
元の要素を変更しない。
新たに要素を作りながら、変換していく
元の要素を変更しない。
新たに要素を作りながら、変換していく
282デフォルトの名無しさん
2020/09/17(木) 14:19:40.85ID:HGhOp2pI283デフォルトの名無しさん
2020/09/17(木) 14:32:15.94ID:+vk10SUH 関数型言語と同様の特徴があるなら、関数型スタイルでいいだろw
関数型言語だって言ってないんだからさぁ
関数型言語だって言ってないんだからさぁ
284デフォルトの名無しさん
2020/09/17(木) 14:32:58.85ID:+vk10SUH > パイプでつなぐスタイルとでも書いとけば恥かかずに済んだのにね
パイプ以外も関数型にみ見られる特徴があるので
関数型スタイルでいいだろw
パイプ以外も関数型にみ見られる特徴があるので
関数型スタイルでいいだろw
285デフォルトの名無しさん
2020/09/17(木) 15:23:37.29ID:d9Y9RH6u >>283
ダメ。
関数型は、結果を呼び出し側に戻すことに意義がある。
処理の流れも記述の形式も、むしろ何も似ていない。
もとの文で「特徴」と言っているが、カテゴリの基準にしていい意味ではない。
シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
ダメ。
関数型は、結果を呼び出し側に戻すことに意義がある。
処理の流れも記述の形式も、むしろ何も似ていない。
もとの文で「特徴」と言っているが、カテゴリの基準にしていい意味ではない。
シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
286デフォルトの名無しさん
2020/09/17(木) 16:19:03.20ID:kAbaS/2M > 関数型は、結果を呼び出し側に戻すことに意義がある。
結果を呼び出し側に戻すなんて、どの言語でも同じじゃん
正しく説明することすらできない程度なら語らないようがいいよ
墓穴掘るだけだから
結果を呼び出し側に戻すなんて、どの言語でも同じじゃん
正しく説明することすらできない程度なら語らないようがいいよ
墓穴掘るだけだから
287デフォルトの名無しさん
2020/09/17(木) 18:06:50.53ID:7lkKgDUb その理屈で言うなら
C言語は「C言語型」だし
Elixirは「Elixir言語型」だし
F*は「F*言語型」だね。
言語使うたび,パラダイム増えるね♪
C言語は「C言語型」だし
Elixirは「Elixir言語型」だし
F*は「F*言語型」だね。
言語使うたび,パラダイム増えるね♪
288デフォルトの名無しさん
2020/09/17(木) 18:20:43.06ID:d9Y9RH6u >>286
まともに理解することすらできない程度なんだね。w
シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
ステートレスでというほかの主張とあわせて一貫している。
うむ。
これは、たしかにわかりやすいな。
覚えておこう。
まともに理解することすらできない程度なんだね。w
シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
ステートレスでというほかの主張とあわせて一貫している。
うむ。
これは、たしかにわかりやすいな。
覚えておこう。
289デフォルトの名無しさん
2020/09/17(木) 18:21:07.37ID:d9Y9RH6u >>287
アホなのかな?
アホなのかな?
290デフォルトの名無しさん
2020/09/17(木) 18:34:36.35ID:0NbLDZXP >>288
> シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
> ステートレスでというほかの主張とあわせて一貫している。
まさに関数型の動作だねw
初心者でよくいるんだわ。関数を使うのが関数型だって思ってるやつ
お前がそれだな
> シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
> ステートレスでというほかの主張とあわせて一貫している。
まさに関数型の動作だねw
初心者でよくいるんだわ。関数を使うのが関数型だって思ってるやつ
お前がそれだな
291デフォルトの名無しさん
2020/09/17(木) 19:02:35.37ID:Wtt+0SS3 シェルスクリプトは手続き型
他言語との一番の違いは処理の入力と出力が文字列に固定されていること
処理の合成を容易にした代わりに入出力に関わる部分で一般的な手続き型言語とは異なる作法が必要
その作法はプログラミングパラダイムというほど大げさなものじゃない
他言語との一番の違いは処理の入力と出力が文字列に固定されていること
処理の合成を容易にした代わりに入出力に関わる部分で一般的な手続き型言語とは異なる作法が必要
その作法はプログラミングパラダイムというほど大げさなものじゃない
292デフォルトの名無しさん
2020/09/17(木) 19:31:27.99ID:d9Y9RH6u293デフォルトの名無しさん
2020/09/17(木) 21:33:54.93ID:0NbLDZXP 言い返せないでおしまい
294デフォルトの名無しさん
2020/09/17(木) 22:32:05.15ID:d9Y9RH6u295デフォルトの名無しさん
2020/09/17(木) 22:33:18.53ID:0NbLDZXP296デフォルトの名無しさん
2020/09/17(木) 23:57:34.63ID:7k+fww17 https://wiki-dev.bash-hackers.org/syntax/basicgrammar#shell_function_definitions
$ {x}<"$x" _=${x=<(echo moo)} <&0$(cat <&"$x" >&2)
simpleとは一体
$ {x}<"$x" _=${x=<(echo moo)} <&0$(cat <&"$x" >&2)
simpleとは一体
297デフォルトの名無しさん
2020/09/18(金) 02:31:56.89ID:Mudt/vfl298デフォルトの名無しさん
2020/09/18(金) 04:54:45.60ID:5l49iFOd299デフォルトの名無しさん
2020/09/18(金) 21:42:27.80ID:JMG0ZHyH300デフォルトの名無しさん
2020/09/18(金) 21:53:19.38ID:5l49iFOd >>299
そこに書いてること読んだ?w
そこに書いてること読んだ?w
301デフォルトの名無しさん
2020/09/18(金) 22:00:45.75ID:JMG0ZHyH 読んだよ?だから聞いてるんだけど
302デフォルトの名無しさん
2020/09/19(土) 14:52:56.70ID:Uw1s41Nc シェルって普通に「副作用」があるコマンドが使われてるよね
POSIXには収録されてないとはいえ,mktempなんかはめちゃめちゃ利用されて
かつ副作用があるコマンドの一例じゃないかしら。
mktemp $$-XXXXX
とすると「ファイルが作られて」かつ「標準出力にそのファイル名が出力」される。
POSIXには収録されてないとはいえ,mktempなんかはめちゃめちゃ利用されて
かつ副作用があるコマンドの一例じゃないかしら。
mktemp $$-XXXXX
とすると「ファイルが作られて」かつ「標準出力にそのファイル名が出力」される。
303デフォルトの名無しさん
2020/09/19(土) 16:37:30.78ID:1l7cqS+f 今なら、プロセス置換やcoprocを使えば、テンポラリファイルなしにできることも少なくなさそう。
304デフォルトの名無しさん
2020/09/19(土) 17:20:44.75ID:Uw1s41Nc305デフォルトの名無しさん
2020/09/19(土) 17:25:16.15ID:VJFBPJzE 標準エラー出力を画面にそのまま表示し、同時にパイプで繋いだ先にも標準出力として出力する方法ってありませんか?
色付きのエラーを画面に表示させ、さらにその内容をgrepで判定したいです
エラー出力はそのままパイプに渡せないのでgrepにかけられません
エラー出力を標準出力に渡すとgrepで判定できますが色が消えてしまいます
色付きのエラーを画面に表示させ、さらにその内容をgrepで判定したいです
エラー出力はそのままパイプに渡せないのでgrepにかけられません
エラー出力を標準出力に渡すとgrepで判定できますが色が消えてしまいます
306デフォルトの名無しさん
2020/09/19(土) 19:23:52.66ID:1l7cqS+f307デフォルトの名無しさん
2020/09/19(土) 19:45:10.10ID:okNEuTuK308デフォルトの名無しさん
2020/09/19(土) 19:51:41.55ID:okNEuTuK 副作用がまったくないのは"純粋"関数型言語
純粋じゃない関数型言語は副作用を許容する
そして関数型スタイルという言い方なら
別に関数型言語である必要はない
https://docs.python.org/ja/3.6/howto/functional.html
> この文書では、関数型スタイルでプログラムを実装するのに
> ピッタリな Python の機能を見てまわることにしましょう。
純粋じゃない関数型言語は副作用を許容する
そして関数型スタイルという言い方なら
別に関数型言語である必要はない
https://docs.python.org/ja/3.6/howto/functional.html
> この文書では、関数型スタイルでプログラムを実装するのに
> ピッタリな Python の機能を見てまわることにしましょう。
309デフォルトの名無しさん
2020/09/19(土) 20:15:47.31ID:9OWUS6ol 初心者のうろ覚えですが、モナドというのは関係ない?
310デフォルトの名無しさん
2020/09/19(土) 20:37:42.24ID:Uw1s41Nc >>307
え,ファイル作成って副作用としてしか表現できないと思ってんの?
え,ファイル作成って副作用としてしか表現できないと思ってんの?
311デフォルトの名無しさん
2020/09/19(土) 20:41:20.32ID:okNEuTuK シェルスクリプトのファイル作成もモナドですねー
312デフォルトの名無しさん
2020/09/19(土) 20:46:22.01ID:okNEuTuK https://qastack.jp/software/369770/do-functional-programming-languages-disallow-side-effects
その意味で、関数型プログラミング言語は実際には副作用を許容します。
外部の世界に影響を及ぼし、他の関数を呼び出し、例外を発生させ、
ファイルに書き込むなどの無数の例があるからです。
その意味で、関数型プログラミング言語は実際には副作用を許容します。
外部の世界に影響を及ぼし、他の関数を呼び出し、例外を発生させ、
ファイルに書き込むなどの無数の例があるからです。
313デフォルトの名無しさん
2020/09/19(土) 20:50:25.87ID:okNEuTuK 常識で考えればわかるだろうに、関数型言語でファイルの作成ができるならそれは副作用でしか無いんだよ。
関数型言語でファイルの作成が副作用に当たらないという屁理屈を言えるなら言ってみるが良い
知ってるなら「○○で表現できる」と断定する言い方をしてみろよ
知らないから>>310のような言い方をしてごまかしている
関数型言語でファイルの作成が副作用に当たらないという屁理屈を言えるなら言ってみるが良い
知ってるなら「○○で表現できる」と断定する言い方をしてみろよ
知らないから>>310のような言い方をしてごまかしている
314デフォルトの名無しさん
2020/09/19(土) 21:22:03.60ID:L0h6VTd7 >>305
scriptで実行してからtypescriptをgrepすれば?
scriptで実行してからtypescriptをgrepすれば?
315デフォルトの名無しさん
2020/09/19(土) 21:28:34.09ID:MdHTO1xD また延々と恥さらしなレスがはじまった
>>304は責任取って
>>304は責任取って
316デフォルトの名無しさん
2020/09/19(土) 21:42:31.36ID:YcZMzNxL ステートレスなパイプでの受け渡しをする様が関数型的という表現に同意しない訳ではないが、関数が第一級オブジェクトじゃないので関数型言語ではないです
evalで取り扱うのはあくまで文字列です
まぁこれ以外にもないない尽くしだしその一点のみで関数型言語だと主張するのは無理があると思うよ
副作用云々に関しては副作用を明示する事を大事にする関数型言語が純粋関数型言語としてあるよねくらいで終わり
evalで取り扱うのはあくまで文字列です
まぁこれ以外にもないない尽くしだしその一点のみで関数型言語だと主張するのは無理があると思うよ
副作用云々に関しては副作用を明示する事を大事にする関数型言語が純粋関数型言語としてあるよねくらいで終わり
317デフォルトの名無しさん
2020/09/19(土) 21:45:34.72ID:Uw1s41Nc >>316
同意。
同意。
318デフォルトの名無しさん
2020/09/19(土) 21:50:48.10ID:okNEuTuK319デフォルトの名無しさん
2020/09/19(土) 22:21:10.97ID:YcZMzNxL >>318
スクリプト内でコマンド列組み立てて文字列で標準出力に投げて標準入力から受け取った側がexecやevalで解釈させてってやってるなら関数型スタイルだと納得するかな
まぁスタイルってぼかされたらこれまた気持ちの問題にしかならないのでここまで
あとファイル作成をモナドとして表現することは可能だけどシェルスクリプトのファイル作成はモナドとして表現されてないからモナドじゃないよ
スクリプト内でコマンド列組み立てて文字列で標準出力に投げて標準入力から受け取った側がexecやevalで解釈させてってやってるなら関数型スタイルだと納得するかな
まぁスタイルってぼかされたらこれまた気持ちの問題にしかならないのでここまで
あとファイル作成をモナドとして表現することは可能だけどシェルスクリプトのファイル作成はモナドとして表現されてないからモナドじゃないよ
320デフォルトの名無しさん
2020/09/19(土) 22:42:01.76ID:1l7cqS+f321デフォルトの名無しさん
2020/09/19(土) 22:50:47.80ID:VJFBPJzE322デフォルトの名無しさん
2020/09/19(土) 23:02:36.62ID:okNEuTuK323デフォルトの名無しさん
2020/09/19(土) 23:10:17.14ID:kGktsB/f 「なんちゃって関数型風味」を「関数型スタイル」て呼ぶなや
そんなん言い出したらなんでもありやぞ
Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
そんなん言い出したらなんでもありやぞ
Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
324デフォルトの名無しさん
2020/09/19(土) 23:11:45.95ID:kGktsB/f 標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
325デフォルトの名無しさん
2020/09/19(土) 23:43:29.10ID:okNEuTuK > Bash依存スクリプトはPOSIX準拠スタイル!(あくまでスタイル)
何も問題ないのでは?w
> 標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
何も問題ないのでは?w
何も問題ないのでは?w
> 標準入力/出力/エラーと常にI/Oを伴う関数型スタイル!?
何も問題ないのでは?w
326デフォルトの名無しさん
2020/09/19(土) 23:44:13.39ID:okNEuTuK C言語はオブジェクト指向言語ではないが
工夫することでオブジェクト指向スタイルのプログラミングが可能
この文章は別にどこもおかしくないしなぁ
工夫することでオブジェクト指向スタイルのプログラミングが可能
この文章は別にどこもおかしくないしなぁ
327デフォルトの名無しさん
2020/09/19(土) 23:53:41.32ID:1l7cqS+f328デフォルトの名無しさん
2020/09/20(日) 00:06:05.33ID:ylbIOeZ5 >>321
Windows 10, WSL, Ubuntu 18.04 の、.bashrc には、以下のように書いてある
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
Windows 10, WSL, Ubuntu 18.04 の、.bashrc には、以下のように書いてある
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
329デフォルトの名無しさん
2020/09/20(日) 00:24:20.42ID:hAWRhXL/ > 既存の用語を使ってないから、何の説明にもなってない
これに尽きる
これに尽きる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「特に中国は事態悪化を控えるべき」 日中対立巡りフランス高官言及 ★2 [蚤の市★]
- 【速報】 セブンイレブンの揚げ鶏が半額 223円 が 111円 本日のみ [お断り★]
- 【芸能】『バンダイナムコフェス』上海公演 日本人歌手・大槻マキが歌唱中に強制退場… 急に音を止められスタッフらしき人達に★2 [冬月記者★]
- 日本のアニソン歌唱中に強制中断 上海、照明落とされ音楽止まる [蚤の市★]
- 【野球】イチローが苦言「一発退場でいい」 現代野球の振る舞いにチクリ「あっちゃいけない」 審判は「威厳を保てなくなっている」 [冬月記者★]
- 中居正広、吹き始めた“追い風”フジ裁判で原告の主張に裁判官が難色、訴訟リスクも激減か 水面下では復帰への動きも活発化 [Ailuropoda melanoleuca★]
- 他サポ2025-273
- 他サポ2025-272
- 他サポ2025-274
- 他サポ2025-270
- 【STARDOM】スターダムワールド Part.33
- ジュビロ磐田を応援するにぃ~ vs 鳥栖
- 日テレ「高市首相の台湾有事発言は越えてはいけないライン。岡田が悪いは筋近い」政府関係者「踏み込みすぎ。明らかに答弁ミス」 [931948549]
- 台湾人「えっ、待って!日本人は台湾台湾言ってて大好きっぽいのになんで全然台湾に来ないの…?」 [271912485]
- ふなっしょい🍬なのらああああああwww🏡
- AI動画、限界突破。もうこれ実写だろ [485187932]
- 【悲報】たぬかな姫、流石に危険を感じたのか返金対応を開始
- 浜田雅功、おわる [329329848]
