[過去ログ] シェルスクリプト総合 その30 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
963: 2019/08/11(日)00:10 ID:GFStkW/c(4/9) AAS
ここはPOSIX準拠じゃないスレも対応?
fishとかの話題もどんどん扱うってことかな?
964: 2019/08/11(日)00:13 ID:GFStkW/c(5/9) AAS
fishってPOSIXと互換性はかなり低かったと思うんだが、
最終的に高い互換性を持たせるつもりなん?

外部リンク:www.excite.co.jp
> POSIX互換シェルとの互換性向上のために&&、||、!をサポート

fishの設計理念5原則(翻訳):使いやすさのための数々の気遣い
外部リンク:fish.rubikitch.com
> 可能な限り上記の目標を崩すことなく、fishはPOSIXの構文に従うべきです。
965: 2019/08/11(日)00:14 ID:vE4Lr4uN(3/4) AAS
最近では PowerShell なんてもあったり
どんどん扱うとかそういうんじゃなくて、そう否定するのはいないんじゃないかな
知らんけど
966: 2019/08/11(日)00:15 ID:GFStkW/c(6/9) AAS
外部リンク:fish.rubikitch.com

> ・ヒアドキュメントは パイプライン で echo コマンドを使うこととほとんど変わらないので不採用です。
> (訳注:「string trim 複数行文字列リテラル」でも代用可能)
> ・サブシェルとコマンド置換とプロセス置換はとても類似性が強いです。fishは コマンド置換 のみをサポートしています。
> それ以外はブロックまたはpsub標準シェル関数 で実現できます。
> ・別名定義 と シェル関数 の双方を持つことは混乱を招きます。特別にどちらも制限と欠点があるからです。
> fishの関数はいずれの構文の欠点も存在しません。
> ・POSIXのクオートの仕様は馬鹿げています!とくにシングルクォートは!!

やっぱ互換性はないと考えたほうが良いか
967: 2019/08/11(日)00:25 ID:GFStkW/c(7/9) AAS
おい、ついてこいよw
せっかくPOSIX以外の話もしてるんだから
968: 2019/08/11(日)00:27 ID:vE4Lr4uN(4/4) AAS
なんで「誰もが」興味があると思うのか
969: 2019/08/11(日)00:29 ID:GFStkW/c(8/9) AAS
関数定義の構文も違ってるみたいだ
外部リンク[html]:fishshell.com
970
(1): 2019/08/11(日)02:09 ID:EariAe7h(1) AAS
>>714-732
Ruby で作った

require "csv"

options = { :headers => true, :col_sep => "\t" }

table_1 = CSV.read( "hoge.tsv", options ) # 読み込み
table_2 = CSV.read( "huga.tsv", options ) # 読み込み

CSV.open( "hoge_huga.tsv", "w", options ) do |csv| # 書き込み
csv << %w(a b c d e) # header
省4
971: 2019/08/11(日)02:44 ID:GFStkW/c(9/9) AAS
>>970
勘違いしてるぞ。明確に書いてはないかもしれんが a b c d e はヘッダじゃなくてデータだ。
eachは不要。あといつになったら、その古いハッシュの書き方をやめるんだ?

訂正版
require 'csv'

options = { col_sep: "\t" }

table1 = CSV.read('hoge.tsv', options)
table2 = CSV.read('huga.tsv', options)

CSV.open('hoge_huga.tsv', 'w', options) do |csv|
table1.zip(table2) do |one, two|
省3
972: 2019/08/11(日)03:58 ID:FACDvm3m(1) AAS
偉ぶりたい満々やな
973
(1): 2019/08/11(日)04:23 ID:GTeyRs5o(1) AAS
長いと大変そう
ruby にもこういうのありそう

DB<8> @a = qw(a b e)
DB<9> splice @a, 2, 0, qw(c d)
DB<10> print @a
abcde
974: 2019/08/11(日)04:38 ID:++HFlOfG(1/13) AAS
>>973
それがRubyにはPerlやJavaScriptみたいなspliceがないんだよね
でも今回は、挿入するだけだから、 csv << one.insert(2, *two) が使えるね
順番をもっと柔軟に変えたいってなると面倒だけど
975
(6): 2019/08/11(日)05:27 ID:oR4Xkpxd(1) AAS
>>660
そういやこんなのはいかんの?
てか、こういう答え既に出た?

#!/bin/sh

cf=0
for f
do
 if [[ cf -eq 0 ]]; then
  cf=1
 else
省5
976: 2019/08/11(日)16:04 ID:++HFlOfG(2/13) AAS
>>975
echo -n はPOSIX準拠ではない。が、メンテナンスが続いている最新シェルはすべてサポートされている
と思っていたんだが、上の方で出てるboshが対応してなかったわw
やっぱりprintfを使うのが一番なんだろうな
977: 2019/08/11(日)16:19 ID:++HFlOfG(3/13) AAS
改めて調べ直してみたら、yashも-nに対応してなかった。
echo -n aaa ってやったら、 -n aaa って出力される。
単純な出力以外printfばっかり使ってたから忘れてたw
978: 2019/08/11(日)16:34 ID:++HFlOfG(4/13) AAS
>  if [[ cf -eq 0 ]]; then

bash依存する必要がないのに、bash依存してる例
979
(1): 2019/08/11(日)16:44 ID:k+c7cOcw(1/10) AAS
重箱の隅が気になって仕方がないのね
そういうのは原理主義者としか思えないけどw
適切なスレが別にあるとわかったんだからそっちでどうぞ
980
(1): 2019/08/11(日)16:45 ID:2JPwQqrg(1) AAS
やっぱりどこでも動くシェルスクリプトなんて幻想なんだね
981: 2019/08/11(日)16:52 ID:lm+uP+yI(2/3) AAS
bash で書くならシェバンで明示するべし

#!/usr/bin/env bash
982
(2): 2019/08/11(日)17:03 ID:k+c7cOcw(2/10) AAS
間違いはそこだよなあ。単に
#!/bin/bash
と書こうとして、うっかり
#!/bin/sh
にしてしまった感じかな
1-
あと 20 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s