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

■ このスレッドは過去ログ倉庫に格納されています
2019/07/01(月) 23:04:27.02ID:/rKj5XUf
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。

前スレ:
シェルスクリプト総合 その29
https://mevius.5ch.net/test/read.cgi/tech/1537540487/
2019/08/09(金) 18:18:03.48ID:err5h/zJ
>>715
こっちのやりかたのほうが汎用的だし個人的には好きかな。
2019/08/09(金) 18:25:29.43ID:UutwPLbs
(´-`).。oO(列の挿入なのに何故ソートするんだろう)
719デフォルトの名無しさん
垢版 |
2019/08/09(金) 18:26:02.71ID:X5pM/Zqg
>>716
awkのところcutでやろうとして失敗してる質問stackoverflowにたくさんあるね。
何度も提案されたが全部リジェクトされたんだとか。
https://stackoverflow.com/questions/1037171/forcing-the-order-of-output-fields-from-cut-command/#answer-1037260
2019/08/09(金) 18:42:56.05ID:xLAwVgGE
む。出遅れたか。気づいていたんだが書き込む時間がなかった。

>>716 と近いが、tsvなら入力をタブ文字にしたほうが良いだろう
でないとスペースまで区切りとして扱われる

paste hoge.tsv huga.tsv | awk -F"\t" -v OFS="\t" '{print $1,$2,$4,$5,$3}'
2019/08/09(金) 18:45:10.20ID:xLAwVgGE
>>718
それな。いかにも要求されてないことをやってるだろw
このスレ、例を出すと、その例を"だけ"に通用するコード書くやつ多いぞ
それを訂正するのに労力がかかるって言った意味わかるやろ?
2019/08/09(金) 18:48:55.70ID:xLAwVgGE
>>713
その答えもありだが、それはそれとして
引き数の a b c を xaz xbz xcz にするPOSIX準拠のテクニックって
あまり知られてないのか?
まさかこんなに出ないとは思わなかった。
2019/08/09(金) 19:01:27.20ID:xLAwVgGE
同時に二つのファイルを開くやり方も分かったことだし、
ついでにシェルスクリプトだけで実現するやり方を書いておこう

#!/bin/sh

exec 3<./hoge.tsv
exec 4<./huga.tsv

IFS=$(printf '\t')
until
 eof=1
 read -r col1 col2 col3 <&3 && eof=''
 read -r col4 col5 <&4 && eof=''
 [ "$eof" ]
do
 set -- "$col1" "$col2" "$col4" "$col5" "$col3"
 echo "$*"
done
2019/08/09(金) 19:03:15.21ID:R8nkiB91
>>720
おおおおおおありがてぇ!

区切りもタブ指定しないとyyyy-mm-dd hh-mm-ssとかがずれるよね
2019/08/09(金) 19:04:32.76ID:xLAwVgGE
>>724
また、てめぇぇぇぇか!
726デフォルトの名無しさん
垢版 |
2019/08/09(金) 19:10:00.87ID:X5pM/Zqg
GNU datamashってのがあんだね。
$ paste hoge.tsv huga.tsv | datamash transpose | sort | datamash transpose
とか。挿入じゃなくてソートだけど。
2019/08/09(金) 19:14:10.02ID:tip6m9df
ソートしたのは >>714 で hoge.tsv と huga.tsv の一行目の項目が辞書順に
並ぶ様に挿入する、って思ったんだよね
2019/08/09(金) 19:21:09.66ID:UutwPLbs
>>720
FSのデフォルトはスペースとタブだから指定する必要ないよ
2019/08/09(金) 19:21:36.74ID:err5h/zJ
なんかこのスレに書き込む質問者ってお客は神様だみたいな発想してる人多い印象がある。
多少の問題は自力で解決しろよって思うわ。
「その例"だけ"に〜」とか喚いてるけど,その「例」とやらがマズい例なのでは?とは1ミリも考えてなさそう。
いつも自分が正しい。問題の責任は他人にある。

まあスレの全員がそうじゃないけどね。極一部。
2019/08/09(金) 19:21:58.99ID:UutwPLbs
>>728
あーごめん
間違ったこれ取消w
2019/08/09(金) 19:22:34.09ID:xLAwVgGE
>>728
アホか、スペースとタブだからタブだけにするんやろw
2019/08/09(金) 19:25:33.15ID:xLAwVgGE
>>729
例っつーのはな、本題があって、それを補足するためのものなんだよ。
本題が本当にやりたいこと、

お前>>714本題の文章「awkとか使ってtsvを別のtsvに挿入させる方法ってある?」
読んで、ソートしたいって思うか?

お前は「いつも自分の解答が正しい。問題の責任は質問した他人にある。」
と考えてるんやろ?
2019/08/09(金) 19:27:56.83ID:UutwPLbs
(´-`).。oO(勘違いしたって言ってるんだからもうええやん)
2019/08/09(金) 19:28:06.46ID:xLAwVgGE
>>694の問題は本日24:00で締め切るでー
シェルスクリプトに詳しいと思ってる人、
挑戦してみてやー
2019/08/09(金) 19:29:12.17ID:xLAwVgGE
>>733
スレ更新してから書き込むまでに、34秒以上かかっただけだよw
2019/08/09(金) 19:33:01.55ID:OjVO+GBn
主気取り
2019/08/09(金) 19:34:19.38ID:xLAwVgGE
しゅ‐き【主気】
?名? そのものがいつも持っている運気。⇔客気(かっき)。〔夢渓筆談‐象数・一〕
738デフォルトの名無しさん
垢版 |
2019/08/10(土) 00:01:07.05ID:L+B8OP2P
はい、24:00締め切りでーす。

> 引き数 a b c を xaz xbz xcz にすればいいわけだが、
> さてどうすればよいだろうか?

解答

for i in "$@"; do
 set -- "$@" "x${i}z"
 shift
done
739デフォルトの名無しさん
垢版 |
2019/08/10(土) 00:04:08.85ID:L+B8OP2P
別解

for i in "$@"; do
 set -- "$@" "x${i}z"
done
shift $(($# / 2))
2019/08/10(土) 00:14:02.13ID:6d2gRK68
なんかシラケちゃったな
741デフォルトの名無しさん
垢版 |
2019/08/10(土) 00:14:33.81ID:L+B8OP2P
知らんがな
2019/08/10(土) 01:26:32.09ID:lTTXvTcQ
なんか対抗するつもりはないけど俺の回答のほうが何やってるか分かりやすい気がする…。
まあトリッキーなシェルスクリプトを書くのは個人の自由だけど
743デフォルトの名無しさん
垢版 |
2019/08/10(土) 01:56:14.18ID:L+B8OP2P
>>742
こんなのトリッキーのうちに入らんでしょ。
シャルスクリプト特有の書き方ってだけ

POSIXの範囲ではシェルスクリプトで使える配列は
パラメータ引数しか無い。その貴重な配列を使いこなせば
bash依存もせずにすむよ
2019/08/10(土) 02:44:27.27ID:x6+Jkr/9
bashでいいじゃん
bash動かないようなクソ環境なんかないだろ今時
2019/08/10(土) 02:48:00.53ID:6d2gRK68
POSIX原理主義者の彼にはそんな煽りは通用しない!
2019/08/10(土) 02:51:21.01ID:L+B8OP2P
そのとおり。Debianがdashを使ってるのだ。どうしようもない。
2019/08/10(土) 02:52:20.68ID:L+B8OP2P
あとAlpine Linuxとかな
2019/08/10(土) 02:58:22.15ID:lTTXvTcQ
>>743
うむ。トリッキーと書いたのは失敗だったな。
ちょっと勘違いを生んでしまった。
繰り返すけどあなたの解答を否定する気は全くないし,自分の解答が一番だなんて思ってないけど
引数「a b c d」を「xaz xbz xcz」に変換するにあたって
「手続き型言語としてのシェルスクリプト」を考えたときに
「引数に順次同じ変換を施して→余計なものを置換する」ほうが
「引数の仕様を利用してfor文を回す→(置き換えられた)引数として利用」
よりも単純かなぁと思っただけ。

あと(問題文に書いてないので推測するしかないが)引数自体はそのまま残したい場合もあるだろうから
引数を置き換えてしまう方法だと不本意な結果を招くかもしれないとも思った。
それこそ「引数を置き換えて新たな引数として利用したい」という要求ならばfor文とsetコマンドを使った方法が
いいんだろうけども。

ところで>>713がBash依存という話だけど
sed -e 's/ $/\
'
↑これってBashでしか使えなかったっけ? sedで何かから改行に置換する方法。
一応The Open Groupの仕様書には
A line can be split by substituting a <newline> into it.
The application shall escape the <newline> in the replacement by preceding it by a <backslash>.
と書かれてるんだけど。
2019/08/10(土) 03:00:17.60ID:L+B8OP2P
bash依存っていうのは ${test[@]} とか printf ',%sz' "${@/#/x}" のことな
2019/08/10(土) 03:03:44.77ID:L+B8OP2P
>>713に関して言えば、
引き数の a b c を xaz xbz xcz にする方法を聞いてるのに
質問の答になってないねとしか言えないから
2019/08/10(土) 03:10:55.16ID:lTTXvTcQ
>>750
うん?
$ cat ./test.sh
#!/bin/sh

printf 'x%sz ' "$@" | sed -e 's/ $/\
/'
$ ./test.sh a b c
xaz xbz xcz
となって要求を満してそうなんだけども,違うのかな?
2019/08/10(土) 03:11:46.31ID:L+B8OP2P
>>694 再掲

> 今回は a b c を xaz,xbz,xcz にしたいから IFS=, を使わなかったわけだが
> それでもIFS=,を使うならばどうすればよいだろうか?
>
> 言い換えると、引き数 a b c を xaz xbz xcz にすればいいわけだが、
> さてどうすればよいだろうか?

>>738または>>739でパラメータ引数$@に入ってないと
IFS=,を使って xaz,xbz,xcz にすることができないだろ
問題をちゃんと読んでいれば、わかるはずのことだが
2019/08/10(土) 03:12:41.50ID:L+B8OP2P
はぁ、またわずかに書くのが遅れたw
2019/08/10(土) 03:35:54.66ID:6d2gRK68
$@ の中身が printable character だけなら GNU awk の SUBSEP 変数と同じ
様に IFS に '\034'(File Separator) を指定して

[ $# -eq 0 ] && exit 0
IFS=$(printf '\034');set -- $(printf "x%sz${IFS}" "$@")
IFS=,;echo "$*"

とか
2019/08/10(土) 03:42:31.75ID:L+B8OP2P
それだと引数に、"a b" が入ってるときにうまく動かない

あと先手を打ってるつもりなら、これを読むように
https://en.wikipedia.org/wiki/ASCII#Printable_characters
2019/08/10(土) 03:43:06.24ID:L+B8OP2P
訂正
それだと "a b" のように引数にスペースが入ってるときにうまく動かない
2019/08/10(土) 03:46:54.60ID:L+B8OP2P
間違えたw
2019/08/10(土) 03:50:33.54ID:6d2gRK68
set -- a "b c" d
IFS=$(printf '\034');set -- $(printf "x%sz${IFS}" "$@")
IFS=,;echo "$*"

とすると xaz,xb cz,xdz となるのだが、そういう事じゃなくて?
2019/08/10(土) 03:54:52.71ID:L+B8OP2P
>>758
うん。だから見落としてたw

そうだな。あとはサブシェルを使うから遅いのと、
それよりも、zshだと
$ ./test.sh a b c
xaz,xbz,xcz,
最後に,がつく
2019/08/10(土) 03:57:09.38ID:leF4BPLu
bash ならどれぐらい分かりやすく書ける?
2019/08/10(土) 03:58:27.60ID:lTTXvTcQ
ぽじっくすに拘ったりぜっしゅに拘ったり急がしやっちゃなw
2019/08/10(土) 04:01:38.59ID:lTTXvTcQ
>>760
Bashとか持ち出すとbash 2.xとか今現在どこでも使われていないバージョンのことも考えないといけなくなるぞw
Solarisでさえbash 4なのにw
2019/08/10(土) 04:04:22.25ID:lTTXvTcQ
因みに>>738>>739はset -uしてると引数が存在しない場合に古いシェルで動かない
2019/08/10(土) 04:04:55.05ID:6d2gRK68
>>759
zsh だと set -- $(printf "x%sz${IFS}" "$@") 後の $# の値が 4 になるのね
POSIX 的には $# == 3 になるのが正しい動作なのかね?
2019/08/10(土) 04:06:36.42ID:lTTXvTcQ
>>752
訊きたいんだけど,
引数を完全に置き換えてしまうことについてはどう思ってる?

再掲するけど
> (問題文に書いてないので推測するしかないが)引数自体はそのまま残したい場合もあるだろうから
> 引数を置き換えてしまう方法だと不本意な結果を招くかもしれないとも思った。

引数自体を弄くる方法だとこういうことになるのでは……?
2019/08/10(土) 04:08:24.77ID:lTTXvTcQ
>>752
例えば>>738でIFS=,を使った場合ってどういう挙動になるのが理想なの?
2019/08/10(土) 04:09:03.91ID:L+B8OP2P
>>761
> ぽじっくすに拘ったりぜっしゅに拘ったり急がしやっちゃなw

何いってんの? POSIX互換シェルにこだわってるだけだよ。
POSIXもdashもzshもbashもワケてない
POSIX互換シェルという一つのこだわりw
2019/08/10(土) 04:11:01.54ID:L+B8OP2P
>>763
> set -uしてると引数が存在しない場合に古いシェルで動かない

苦笑(知ってるw)

間違ってないが、具体的にどのシェルで動かないか言えるかい?
2019/08/10(土) 04:14:17.41ID:L+B8OP2P
>>764
> POSIX 的には $# == 3 になるのが正しい動作なのかね?
めんどくさくて調べてないな。

でもzshだけではなく、今は使われてないだろう古いシェルや
とあるシェルの古いバージョンでは4で、後のバージョンでは3になってたりするから
おそらく $# == 3 が正しいのだろう。

だが、現実として動かないシェルがある
POSIX互換シェルに拘ってるといったが、正確にはPOSIX互換シェルと名乗っている
現実に存在するシェルに拘っているというべきか
2019/08/10(土) 04:14:54.05ID:L+B8OP2P
>>766
>>694に書いてる
2019/08/10(土) 04:15:21.60ID:lTTXvTcQ
ZshってPOSIX互換を謳ってたっけ?
少なくとも公式ページ[zsh.org]にはそんな記述は見当らんが…。
もしかしてemulate -R shをPOSIX準拠モードとかだと思ってる…?
2019/08/10(土) 04:19:09.04ID:lTTXvTcQ
>>770
いやまって。マジで分からんわw
引数「a b c」を「xaz xbz xcz」にする過程でIFS=,を使う場面なんてあるか?
そして仮にあったとして
>>713>>738とでその時の挙動に違いがあるとは思えんのだが↓
もしかして
引数「a,b,c」を「xaz xbz xcz」にするとかそういう話か?
for i in IFS=, "$@"; do
set -- "$@" "x${i}z"
shift
done

echo "$@"
こんな風に?w
2019/08/10(土) 04:20:00.43ID:L+B8OP2P
>>762
Solarisは10まで(POSIX互換ではない)Bourne Shellが
デフォルトシェルだってのがいただけない
Extended Supportが2021年までらしい。
まあ俺はPOSIXじゃないからという理由で切り捨てることにしてるが
2019/08/10(土) 04:20:29.77ID:lTTXvTcQ
>>694
> 今回は a b c を xaz,xbz,xcz にしたいから IFS=, を使わなかったわけだが →分かる
> それでもIFS=,を使うならばどうすればよいだろうか?→そうだな,どうすればいいんだろう。

> 言い換えると、引き数 a b c を xaz xbz xcz にすればいいわけだが、→え?空白区切り?今IFS=,の話だよな??
> さてどうすればよいだろうか? →????
2019/08/10(土) 04:23:34.50ID:L+B8OP2P
>>772

>>694再掲 読める?

> 今回は a b c を xaz,xbz,xcz にしたいから IFS=, を使わなかったわけだが
> それでもIFS=,を使うならばどうすればよいだろうか?
2019/08/10(土) 04:26:01.61ID:L+B8OP2P
>>774
お前プログラマに向いてないよw
推論能力が圧倒的に不足してる

引数が、xaz xbz xcz の状態なら、IFS使って xaz,xbz,xcz にできるだろw

って言っても理解できないんだろうなw
2019/08/10(土) 04:28:59.25ID:YdwKfvKq
いつものクイズくん
2019/08/10(土) 04:29:01.72ID:L+B8OP2P
>>771
zshのマニュアルにはPOSIXという文字が50個以上存在する
これでPOSIXを意識してないとか考えられんわw
2019/08/10(土) 04:29:23.37ID:L+B8OP2P
>>777
呼びました?(別に隠してない)
2019/08/10(土) 04:35:32.28ID:6d2gRK68
>>778
Zsh is able to emulate POSIX shells, but its default mode is not POSIX compatible

なんて書いてあるから何か変数を設定しないとダメみたいだな
色々弄ってるけど $# が 3 にならんのぅ…ソースコード読むしかないかなw
2019/08/10(土) 04:38:16.54ID:L+B8OP2P
>>780
たぶんその挙動はバグで確定だと思うでw
2019/08/10(土) 04:41:34.35ID:L+B8OP2P
>>768の質問には答えてくれないのかな?
set -uしてると引数が存在しない場合に動かない古いシェルはなにか?
2019/08/10(土) 04:42:42.71ID:lTTXvTcQ
>>776
うんだってプログラマじゃねーもんw

寧ろその程度の能力でイキれるお前がプログラマっぽくねぇなw

こっちの類推能力も足りんかもしれんが
そっちの説明能力もかなり欠如してんぞw
2019/08/10(土) 04:43:21.02ID:lTTXvTcQ
>>782
すまんがその前に>>765に答えてほしい
2019/08/10(土) 04:44:17.65ID:L+B8OP2P
別にイキってないが、イキってるように見えるのは
俺じゃなくて、お前の問題でしょう? 普通のことなのにお前にはそう見えてしまう。
2019/08/10(土) 04:45:41.26ID:L+B8OP2P
>>784
何に答えればいいの?

引数を完全に起きかえたいなら置き換えればいいし
置き換えたくないならば、置き換えなければいいだけじゃん
2019/08/10(土) 04:49:56.25ID:L+B8OP2P
なんで>>765みたいな質問が来るのかを推測したが、
提示したコードはそれで「完成したコード」で
そのコードを修正した「応用」は存在しないとか思ってないか?
違うことをしたいならそれに応じて変えればよかろう?
2019/08/10(土) 04:50:45.96ID:lTTXvTcQ
>>782
>>786で一応答えを頂いたので,>>768への回答をば。
https://www.in-ulm.de/~mascheck/various/bourne_args/
ここの
These shells behave the old way and need ${1+"$@"}:
に色々載ってるぜ
俺が知らないシェルもあって勉強になったわ。
2019/08/10(土) 04:57:52.03ID:lTTXvTcQ
>>785
うーむ。自省という言葉を教えてあげたいw
まあある程度シェルスクリプトの能力はありそうだが
それ以外が致命的とお見受けするわ……。

ていうかシェルスクリプトの能力ってそんな高める必要ある?
>>713程度が書ければそれで十分。
より高度な,それこそJSONやXMLみたいな階層構造のある
「1行1データ」とは限らない形式のファイルを読み込みたけりゃ,
CなりPerlなりを使えばよろしい。
もしくはjqやらxmllintやらで適切に処理して
シェルスクリプトに掛ければよろしい。
2019/08/10(土) 05:00:56.32ID:L+B8OP2P
>>788
それを探してきたかw

じゃあそこに書いてない情報を。
poshは<0.10(8年前)ということになってるが、未だ最新版(9ヶ月前)の0.13.2でも修正されていない
だから「古いシェル」は実は間違い

バグ報告はでてるんだがねぇ

posh: set -u prevents using empty argument list
Date: Wed, 3 May 2017 12:24:01 UTC
Found in version posh/0.12.6
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=861743

posh can not use "$@" together with set -u
Date: Wed, 14 Nov 2018 10:00:01 UTC
Found in version posh/0.13.2
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913718
2019/08/10(土) 05:03:11.51ID:L+B8OP2P
>>789
> ていうかシェルスクリプトの能力ってそんな高める必要ある?

俺がやりたいことを実現するのに必須だったから
自然と高くなっただけ
2019/08/10(土) 05:19:53.11ID:YdwKfvKq
>>789
無駄だろう、最初から偉ぶりたいのが目的なんだから
他人と同等になっただけでも負けとかなんとか思ってるのだろう
2019/08/10(土) 06:27:36.08ID:lTTXvTcQ
>>790
うーん。
まあそうなのかもしれないが
poshを「無意識に」使ってしまう環境なんてあるのだろうか?
例えば#!/bin/shが/usr/bin/bashにリンクされてる環境であれば,
BashのPOSIX互換モード特有のバグには注意しなくてはいけないし,
/bin/shの実体が/usr/bin/bashになってる環境は多いので,
多くの利用者が「今 自分が使っている/bin/shが実はBashだ」と意識することなく
POSIX shで正しく動く筈のシェルスクリプトを走らせることがあると想定できる。
でもposhが既定で/bin/shにリンクされてたりする環境があるとは思えない…。
2019/08/10(土) 08:53:06.96ID:x0rFB4wI
>>751
この書き方が分かりやすくて良いと思うんだけど何か問題あるの?
2019/08/10(土) 09:44:59.99ID:L+B8OP2P
>>794
その話はもう終わってる
2019/08/10(土) 09:50:56.01ID:L+B8OP2P
>>793
何が言いたいのかわからん。

set -uで動かないシェル(例 posh)があると言い出した(>>763)のはあんただろ?

なんで俺が書いたコードがset -uで動かないと言い出した本人が
set -uで動かないシェルを使う環境なんてあるとは思えないって言ってるんだよw
2019/08/10(土) 09:52:55.77ID:lTTXvTcQ
>>794
もう触れるな。
2019/08/10(土) 09:55:34.95ID:L+B8OP2P
>>796に対する返答は?
2019/08/10(土) 10:06:01.28ID:x0rFB4wI
引数を置換するってだけで何をぐだぐだ言ってるんだかw
2019/08/10(土) 10:15:01.29ID:L+B8OP2P
だから>>751は「引数を置換する」コードになってないだろ?
2019/08/10(土) 10:20:30.35ID:x0rFB4wI
オリジナルの引数を置換するのはプログラマーの本能が止めろと言っているw
普通は置換したもの別の変数に入れて使うよな
2019/08/10(土) 10:31:58.19ID:L+B8OP2P
>>801
そのルールを守りつつ、IFS=,でjoinするというテクニックを使って(必須です。カンマ区切りをするときに使用します)
引数 a b c (例です。引数の内容、個数は変わることがあります)から
xaz,xbz,xcz (例です。引数の前後にxとzをつけてカンマ区切りにするという意味です)
という出力を得るコードを書くところまでやるのが君の仕事。
それができれば一人前だ!
2019/08/10(土) 10:37:28.54ID:L+B8OP2P
「POSIX準拠で」をつけ忘れたなw
そこまで文脈読めてないやつじゃないだろうが
2019/08/10(土) 10:43:31.28ID:x0rFB4wI
マウントとらないと死んじゃう病気なのかw
2019/08/10(土) 10:47:01.43ID:L+B8OP2P
>>804


俺はシェルスクリプトではやらないが、
他の言語で引数を置換するのはやめろというのはわかるから
その理屈は間違いじゃないとして、じゃあそれをシェルスクリプトでやるには
どうすればいいだろうか?という新たな出題に変えただけだけど?

いや、できるでしょ?これ。
2019/08/10(土) 10:48:10.57ID:L+B8OP2P
もちろんトリッキーなコードになるだろうけど
(こういうのこそトリッキーというべきだろう)
2019/08/10(土) 10:49:05.37ID:x0rFB4wI
え?
だから>>751でいいじゃん
何か問題あるのか?
2019/08/10(土) 10:49:46.44ID:L+B8OP2P
>>807
自分でルールを守ってない

> 普通は置換したもの別の変数に入れて使うよな
2019/08/10(土) 10:51:11.39ID:x0rFB4wI
>>808
は?
だから出力を変数に入れて使えばいいんだろ
2019/08/10(土) 10:51:49.42ID:L+B8OP2P
それから >>751 に関しては
引数をIFS=,でjoinするならばどうすればいいだろうか?という
出題のルールを守ってないよねってことで>>694に反してる。
2019/08/10(土) 10:52:52.04ID:L+B8OP2P
>>809
また書くのが遅れたけど、>>751>>694のルールを守ってないのでだめなんだよ。
その話は終わったって言ってるでしょw
2019/08/10(土) 10:54:58.72ID:L+B8OP2P
>>809
「置換したものを別の変数に入れて」使わなければだめ
「出力したものを別の変数に入れる」のは自分で作ったルールに違反してるw
2019/08/10(土) 10:58:02.57ID:x0rFB4wI
やりたいことができればそれでいいじゃん
2019/08/10(土) 11:22:44.90ID:L+B8OP2P
「やりたいこと」は>>694に書いてあるとおり
「IFS=,でjoinするために引数を置き換える」がやりたいこと(解答はすでに出してる)

んで、新しい問題の「やりたいこと」は>>802に書いてあるとおり
2019/08/10(土) 11:44:27.56ID:x0rFB4wI
手段が目的化する典型的な例だな
そんな縛りプレイに付き合う気になれんな

で、後からコード出して
こんなのも分からんのか?大したことねえな
ってやりたいんだろ?

それはな、
その問題がつまらないから誰もやらないんだよw
2019/08/10(土) 12:08:44.58ID:Du6eKhDT
>>798
「コードがset -uで動かない」という発言と
「poshを「無意識に」使ってしまう環境なんてあるのだろうか?」という発言は
ほぼ矛盾しないと思うんだけど。

set -uで"$@"が空のとき失敗するシェルはposhだけじゃない。
>>788で示したリンク先を見てくれ。
なぜかあなたはposhに拘ってるけど(最近になっても解決してないからか?)。

poshに限った話じゃないのに,なぜかposhに限定して話を進めてるから困るわ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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