シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ:
シェルスクリプト総合 その29
https://mevius.5ch.net/test/read.cgi/tech/1537540487/
探検
シェルスクリプト総合 その30
■ このスレッドは過去ログ倉庫に格納されています
2019/07/01(月) 23:04:27.02ID:/rKj5XUf
2019/07/02(火) 06:08:36.27ID:rBxHnYzF
>>28
Bashとかだとわざわざlocalっていう新しい予約語を用意してるけど
正直無駄っちゃ無駄よね。
POSIX準拠のシェルスクリプトでもほぼ可読性を損なわずに局所変数が定義できるから。
ところでBashの拡張機能で素晴しいと思うのは配列だね。
これはPOSIXに準じたシェルスクリプトではなかなか実現できない。
実現できたとしても大抵は複雑奇怪でデバックも地獄。
Bashとかだとわざわざlocalっていう新しい予約語を用意してるけど
正直無駄っちゃ無駄よね。
POSIX準拠のシェルスクリプトでもほぼ可読性を損なわずに局所変数が定義できるから。
ところでBashの拡張機能で素晴しいと思うのは配列だね。
これはPOSIXに準じたシェルスクリプトではなかなか実現できない。
実現できたとしても大抵は複雑奇怪でデバックも地獄。
2019/07/02(火) 06:09:34.19ID:uO4UDEG+
forkはプロセスのコピーなので、親プロセスの変数なんぞはそのまま使える。だがしかし返すことや親プロセスの変数を変えることはできません
ってだけだね、確か
>>30
1.すでに言ってるけどなあ。最初から言えっていう?bashでのスッキリした書き方がわかっているもんだと思ったから
2.「同等の立場」とか何言っているのかわからん。どこでも誰でもPOSIXでなければならないとか言ってないでしょ?何を言っているのかわからん。bashでいいならbashを使ったそれに準じたでいいでしょね
ってだけだね、確か
>>30
1.すでに言ってるけどなあ。最初から言えっていう?bashでのスッキリした書き方がわかっているもんだと思ったから
2.「同等の立場」とか何言っているのかわからん。どこでも誰でもPOSIXでなければならないとか言ってないでしょ?何を言っているのかわからん。bashでいいならbashを使ったそれに準じたでいいでしょね
2019/07/02(火) 06:10:40.06ID:uO4UDEG+
2019/07/02(火) 06:13:15.11ID:rBxHnYzF
>>33
「矛盾している」という指摘を「揶揄」と捉えてしまうような人とはお話できませんね……。
「矛盾している」という指摘を「揶揄」と捉えてしまうような人とはお話できませんね……。
2019/07/02(火) 06:16:38.40ID:uO4UDEG+
>>34
その「矛盾している」という元はなんだったのか自分の書いたレスをよく読んできてね(そもそも普遍的でないは別にスコープとは無関係なことでなのに急にという)
スコープがPOSIXでは無かったら、bashでできるようなのは無駄とか言っちゃってるんですけど?ちょっと酷すぎね?w
その「矛盾している」という元はなんだったのか自分の書いたレスをよく読んできてね(そもそも普遍的でないは別にスコープとは無関係なことでなのに急にという)
スコープがPOSIXでは無かったら、bashでできるようなのは無駄とか言っちゃってるんですけど?ちょっと酷すぎね?w
2019/07/02(火) 06:19:02.38ID:rBxHnYzF
>>32
> どこでも誰でもPOSIXでなければならないとか言ってないでしょ
いや,今回に限ればそれは違う。
https://mevius.5ch.net/test/read.cgi/tech/1537540487/962
でPOSIXでの書き方を訊いた人がいて,それに関して
https://mevius.5ch.net/test/read.cgi/tech/1537540487/971
を提示すると
https://mevius.5ch.net/test/read.cgi/tech/1537540487/972
でID:uO4UDEG+が「その書き方は嫌いだ」という主張をしている。
つまりID:uO4UDEG+は少なくとも前スレ972においては
「POSIXに準じた書き方」と「自分が好きな書き方」を比較している。
たとえ無意識的だったとしても,たった2つ前のスレを読んでさえいれば
前スレ971で(俺が)提示したシェルスクリプトがPOSIX準拠を念頭に置いて書いたものだと分かる筈。
> どこでも誰でもPOSIXでなければならないとか言ってないでしょ
いや,今回に限ればそれは違う。
https://mevius.5ch.net/test/read.cgi/tech/1537540487/962
でPOSIXでの書き方を訊いた人がいて,それに関して
https://mevius.5ch.net/test/read.cgi/tech/1537540487/971
を提示すると
https://mevius.5ch.net/test/read.cgi/tech/1537540487/972
でID:uO4UDEG+が「その書き方は嫌いだ」という主張をしている。
つまりID:uO4UDEG+は少なくとも前スレ972においては
「POSIXに準じた書き方」と「自分が好きな書き方」を比較している。
たとえ無意識的だったとしても,たった2つ前のスレを読んでさえいれば
前スレ971で(俺が)提示したシェルスクリプトがPOSIX準拠を念頭に置いて書いたものだと分かる筈。
2019/07/02(火) 06:22:13.76ID:uO4UDEG+
2019/07/02(火) 06:26:43.80ID:Atdu9zIi
2019/07/02(火) 06:28:53.26ID:uO4UDEG+
>>38
そういう場合は変えられるんじゃないの?でないと、わざわざメモリガードというか別メモリを用意してとかめんど臭いことしなきゃならないだろうね
そういう場合は変えられるんじゃないの?でないと、わざわざメモリガードというか別メモリを用意してとかめんど臭いことしなきゃならないだろうね
2019/07/02(火) 06:30:42.30ID:Atdu9zIi
>>31
配列が出てくるのはシェルスクリプトのプログラミングスタイルがわかってないんだと思う。
一行一データで行指向で処理するのがシェルスクリプトだから
ツリー構造のデータにRDBMSを使うようなもん
配列が出てくるのはシェルスクリプトのプログラミングスタイルがわかってないんだと思う。
一行一データで行指向で処理するのがシェルスクリプトだから
ツリー構造のデータにRDBMSを使うようなもん
2019/07/02(火) 06:32:49.73ID:Atdu9zIi
>>39
> そういう場合は変えられるんじゃないの?
主語をはっきりさせろ。誰にも伝わらん。
> わざわざメモリガードというか別メモリを用意してとかめんど臭いことしなきゃならないだろうね
だからkshは面倒くさいことをして
(特定の条件を満たす限り)サブシェルを別プロセスにしてない。
そういうことをしてOKだし、そういうことを想定してるから、
サブプロセスではなくサブシェルという別の言葉を作ってる
> そういう場合は変えられるんじゃないの?
主語をはっきりさせろ。誰にも伝わらん。
> わざわざメモリガードというか別メモリを用意してとかめんど臭いことしなきゃならないだろうね
だからkshは面倒くさいことをして
(特定の条件を満たす限り)サブシェルを別プロセスにしてない。
そういうことをしてOKだし、そういうことを想定してるから、
サブプロセスではなくサブシェルという別の言葉を作ってる
2019/07/02(火) 06:36:07.29ID:rBxHnYzF
>>40
まあ,そう言われればそうだな。
俺も,シェルスクリプト大好きですみたいな雰囲気のくせして,
シェルスクリプトで面倒な操作が要求されるような場合は
すぐにC#やPython3に浮気するからなw
まあ,そう言われればそうだな。
俺も,シェルスクリプト大好きですみたいな雰囲気のくせして,
シェルスクリプトで面倒な操作が要求されるような場合は
すぐにC#やPython3に浮気するからなw
2019/07/02(火) 06:36:08.06ID:uO4UDEG+
>>41
サブシェルが別プロセスでない場合だよ。プロセスが別かどうかの話なんだからわかるかと思ったけどなあ
ということは、同一プロセスでも変えられないのね。「ksh」はそこは「よく考えるんだな」と言えるでしょうね。なんでまたとも思うけど。古のshは別プロセスの方だろうと思うけどどうだろう
サブシェルが別プロセスでない場合だよ。プロセスが別かどうかの話なんだからわかるかと思ったけどなあ
ということは、同一プロセスでも変えられないのね。「ksh」はそこは「よく考えるんだな」と言えるでしょうね。なんでまたとも思うけど。古のshは別プロセスの方だろうと思うけどどうだろう
2019/07/02(火) 06:37:14.94ID:Atdu9zIi
>>43
だから、何を何に「変えられる」のか言えって
だから、何を何に「変えられる」のか言えって
2019/07/02(火) 06:38:46.75ID:rBxHnYzF
>>37
別に俺はPOSIX第一主義でもなんでもない。
というかPOSIXに従わないという明確な方針があるならそれはそれでいいとさえ思ってる
(あまり賛同しずらいけど)。
ただし今回はPOSIXに準拠したものと「同等の」シェルスクリプトを書く話だから
俺はPOSIX規格を持ち出してきてる訳。
別に俺はPOSIX第一主義でもなんでもない。
というかPOSIXに従わないという明確な方針があるならそれはそれでいいとさえ思ってる
(あまり賛同しずらいけど)。
ただし今回はPOSIXに準拠したものと「同等の」シェルスクリプトを書く話だから
俺はPOSIX規格を持ち出してきてる訳。
2019/07/02(火) 06:39:59.55ID:uO4UDEG+
2019/07/02(火) 06:41:23.10ID:rBxHnYzF
しっかし……なんでそう極端にしかモノを考えられないのかね。
たぶん,彼が想像する世界には「POSIX絶対!」っていう人と「Bashizm最高!」っていう人の二種類しか存在しないのかもw
だってそうじゃなきゃ(限定的に)POSIXの話をしている中に割って入って「POSIX第一主義だ」なんて言えないもん。
(というかそういう発想がまず出てこないw)
たぶん,彼が想像する世界には「POSIX絶対!」っていう人と「Bashizm最高!」っていう人の二種類しか存在しないのかもw
だってそうじゃなきゃ(限定的に)POSIXの話をしている中に割って入って「POSIX第一主義だ」なんて言えないもん。
(というかそういう発想がまず出てこないw)
2019/07/02(火) 06:41:51.94ID:uO4UDEG+
2019/07/02(火) 06:44:53.65ID:Atdu9zIi
POSIXシェルの範囲でできることなんだから、POSIX準拠でいいやん
これだけだろ。
POSIX準拠じゃできないことならまだしも、
POSIX準拠でできるならPOSIX準拠で作ってりゃ可搬性も有るし。
必要もないのに [[ ]] を使うやつ多すぎ
これだけだろ。
POSIX準拠じゃできないことならまだしも、
POSIX準拠でできるならPOSIX準拠で作ってりゃ可搬性も有るし。
必要もないのに [[ ]] を使うやつ多すぎ
2019/07/02(火) 06:45:12.79ID:uO4UDEG+
2019/07/02(火) 06:46:27.41ID:uO4UDEG+
>>49
そゆとこだよ、あなたの悪いwとこは。やっぱり自分が正しく他の人の好みは認めんってだけやん
そゆとこだよ、あなたの悪いwとこは。やっぱり自分が正しく他の人の好みは認めんってだけやん
2019/07/02(火) 06:47:02.37ID:rBxHnYzF
>>48
元の人というのはID:Tm8GOmHyだよな。
この人物のその後の発言は
https://mevius.5ch.net/test/read.cgi/tech/1537540487/967
しかないのだが,ここから
「POSIXと『同等』のシェルスクリプトというのは
POSIX規格に準拠したシェルスクリプトのことではない」
という主張は俺にはどうしても読み取れんな……。
元の人というのはID:Tm8GOmHyだよな。
この人物のその後の発言は
https://mevius.5ch.net/test/read.cgi/tech/1537540487/967
しかないのだが,ここから
「POSIXと『同等』のシェルスクリプトというのは
POSIX規格に準拠したシェルスクリプトのことではない」
という主張は俺にはどうしても読み取れんな……。
2019/07/02(火) 06:48:07.81ID:Atdu9zIi
>>51
そういうとこな(笑)
そういうとこな(笑)
2019/07/02(火) 06:48:23.35ID:Atdu9zIi
>>51
お前のことやで。そういうとこ。
お前のことやで。そういうとこ。
2019/07/02(火) 06:49:02.19ID:rBxHnYzF
2019/07/02(火) 06:49:41.71ID:rBxHnYzF
2019/07/02(火) 06:49:42.46ID:uO4UDEG+
2019/07/02(火) 06:49:55.77ID:Atdu9zIi
「POSIX準拠でいいやん」という意見を認めたくないんだろうね(笑)
2019/07/02(火) 06:50:40.47ID:rBxHnYzF
>>57
すいません,ここでの「『同等』の意味」を教えていただけますか。
すいません,ここでの「『同等』の意味」を教えていただけますか。
2019/07/02(火) 06:50:44.84ID:Atdu9zIi
2019/07/02(火) 06:53:34.64ID:uO4UDEG+
>>53-55
あなたたちとの違いは、
>必要もないのに [[ ]] を使うやつ多すぎ
とかいうのと同じようなこと言ってないよ。俺は別にあなたにPOSIXにこだわって書くなとは言ってないよ?好きにすればだよ
あなたのこの言葉はそれと同じとでも言うの?
なんであなたの好みを他人に押し付けるの?なにか意味あんのそれ?
あなたたちとの違いは、
>必要もないのに [[ ]] を使うやつ多すぎ
とかいうのと同じようなこと言ってないよ。俺は別にあなたにPOSIXにこだわって書くなとは言ってないよ?好きにすればだよ
あなたのこの言葉はそれと同じとでも言うの?
なんであなたの好みを他人に押し付けるの?なにか意味あんのそれ?
2019/07/02(火) 06:55:55.49ID:uO4UDEG+
2019/07/02(火) 07:08:42.17ID:rBxHnYzF
>>62
あーなるほど。
Bashの独自文法で書いたシェルスクリプトと限りなく同じ見た目のものを要求してた訳か……。
うーん。これには助けにならないな。
少なくとも俺はPOSIXに準じつつかつfor (())文みたいな「見た目」のシェルスクリプトを書けない。
あーなるほど。
Bashの独自文法で書いたシェルスクリプトと限りなく同じ見た目のものを要求してた訳か……。
うーん。これには助けにならないな。
少なくとも俺はPOSIXに準じつつかつfor (())文みたいな「見た目」のシェルスクリプトを書けない。
2019/07/02(火) 07:09:11.44ID:uO4UDEG+
ああ、ああしろとは言ってるな「好みを押し付けるんじゃねえ」とw
2019/07/02(火) 07:09:48.34ID:rBxHnYzF
>>63
sed -e 's/助けにならない/助けになれない/'
sed -e 's/助けにならない/助けになれない/'
2019/07/02(火) 07:10:52.83ID:uO4UDEG+
>>63
ご理解いただけて嬉しい限りでございます。彼の本音とかわからんけどねw
ご理解いただけて嬉しい限りでございます。彼の本音とかわからんけどねw
2019/07/02(火) 07:14:40.86ID:Atdu9zIi
全く同じじゃないとだめとかアホだろw
同等のコードがかければ問題ない。
同等のコードがかければ問題ない。
2019/07/02(火) 07:17:16.38ID:uO4UDEG+
好みを押し付けるんじゃねえ
って繰り返すだけだな、もうwアホとか馬鹿にしなきゃならないほどのあんたの心理がわからん
って繰り返すだけだな、もうwアホとか馬鹿にしなきゃならないほどのあんたの心理がわからん
2019/07/02(火) 07:42:13.15ID:Atdu9zIi
>>63
> 少なくとも俺はPOSIXに準じつつかつfor (())文みたいな「見た目」のシェルスクリプトを書けない。
ほらよ。関数を作ってPOSIX準拠でコレが動くようにしたで。これなら満足やろ?
forloop i=0 'i < 2' i+=1; do
forloop j=0 'j < 10' j+=2; do
echo "$i $j"
done
done
出力結果
0 0
0 2
0 4
0 6
0 8
1 0
1 2
1 4
1 6
1 8
forloop の実装はお昼ごろ公開(笑)
> 少なくとも俺はPOSIXに準じつつかつfor (())文みたいな「見た目」のシェルスクリプトを書けない。
ほらよ。関数を作ってPOSIX準拠でコレが動くようにしたで。これなら満足やろ?
forloop i=0 'i < 2' i+=1; do
forloop j=0 'j < 10' j+=2; do
echo "$i $j"
done
done
出力結果
0 0
0 2
0 4
0 6
0 8
1 0
1 2
1 4
1 6
1 8
forloop の実装はお昼ごろ公開(笑)
2019/07/02(火) 07:59:30.87ID:rBxHnYzF
71デフォルトの名無しさん
2019/07/02(火) 09:02:17.46ID:QDdew1lC まとめるとどこでも動くシェルスクリプトなんて都市伝説ってことだね。
だってめんどくさすぎるもん。
普通に書いたらその実質環境専用。
だってめんどくさすぎるもん。
普通に書いたらその実質環境専用。
2019/07/02(火) 09:04:33.59ID:rBxHnYzF
そういうことにしたいのなら、そうなんでしょうね。
2019/07/02(火) 09:18:25.84ID:p7jTc1Zw
POSIX原理主義的にはアウトなんだろうけど
俺なら素直にseq使うな
for i in `seq 0 1`; do
for j in `seq 0 2 9`; do
echo "$i $j"
done
done
俺なら素直にseq使うな
for i in `seq 0 1`; do
for j in `seq 0 2 9`; do
echo "$i $j"
done
done
2019/07/02(火) 09:24:30.73ID:TPa3Dzqe
仮定の話として、
bashのがPOSIX規格に入ったとして、方々の環境で使えるようになったとしても、
それを使わずに独特なあんなのを書くのだろうか?
bashのがPOSIX規格に入ったとして、方々の環境で使えるようになったとしても、
それを使わずに独特なあんなのを書くのだろうか?
2019/07/02(火) 09:38:35.04ID:NGgK0zPR
修羅の道
2019/07/02(火) 09:42:44.56ID:p7jTc1Zw
慣れの問題じゃないかな
人間は最初に覚えたものを正しいとする傾向があるからね
人間は最初に覚えたものを正しいとする傾向があるからね
2019/07/02(火) 10:12:37.42ID:K9FUvK74
2019/07/02(火) 10:27:34.91ID:p7jTc1Zw
2019/07/02(火) 10:33:48.48ID:K9FUvK74
2019/07/02(火) 10:36:47.73ID:uMGeffjZ
bash のfor ループで、5分ぐらい掛かるものが、
awk, Perl, Ruby などでは数秒以内
dash なら、まだマシ
awk, Perl, Ruby などでは数秒以内
dash なら、まだマシ
2019/07/02(火) 10:38:10.41ID:9kNMjoh/
また原理主義者が跳梁跋扈しているのか
2019/07/02(火) 10:38:45.33ID:K9FUvK74
× bash のfor ループで、5分ぐらい掛かるものが、
○ bash のfor ループで大量に外部プロセス呼び出ししたから5分ぐらい掛かる。俺ってなんて馬鹿だろう
○ bash のfor ループで大量に外部プロセス呼び出ししたから5分ぐらい掛かる。俺ってなんて馬鹿だろう
2019/07/02(火) 13:09:34.12ID:+S00pq20
では>>69の解答(こんなコード書かないで普通にwhile使うわw)
iterator() {
case $iterator in
?) eval ": \$(($3)); [ \$(($2)) = 1 ]" ;;
*) eval ": \$(($1)); iterator=1" ;;
esac
}
alias forloop="iterator=; while iterator"
forloop i=0 'i < 2' i+=1; do
forloop j=0 'j < 10' j+=2; do
echo "$i $j"
done
done
iterator() {
case $iterator in
?) eval ": \$(($3)); [ \$(($2)) = 1 ]" ;;
*) eval ": \$(($1)); iterator=1" ;;
esac
}
alias forloop="iterator=; while iterator"
forloop i=0 'i < 2' i+=1; do
forloop j=0 'j < 10' j+=2; do
echo "$i $j"
done
done
2019/07/02(火) 13:10:15.61ID:+S00pq20
あ、bashの場合のコード忘れてたw
[ "${BASH_VERSION:-}" ] && shopt -s expand_aliases
[ "${BASH_VERSION:-}" ] && shopt -s expand_aliases
85デフォルトの名無しさん
2019/07/02(火) 13:12:43.38ID:NqAwj9wC やっぱりどこでも動くシェルスクリプトなんて現実的じゃないね。
2019/07/02(火) 16:30:08.56ID:rBxHnYzF
そういうことにしたいのなら、そうなんでしょうね。
2019/07/02(火) 16:35:31.23ID:rBxHnYzF
>>74
そんな訳なくね?
だってBashの構文がPOSIX規格に採用されたということは
「好みの」問題でBashの構文を書いたとしてもどこでも動くシェルスクリプトが書ける訳でしょ。
俺はどーでもいいけどBashの構文を書きたい&&POSIXに準拠したい人は,
当然Bashの構文で書くようになるだろうね。
そんな訳なくね?
だってBashの構文がPOSIX規格に採用されたということは
「好みの」問題でBashの構文を書いたとしてもどこでも動くシェルスクリプトが書ける訳でしょ。
俺はどーでもいいけどBashの構文を書きたい&&POSIXに準拠したい人は,
当然Bashの構文で書くようになるだろうね。
2019/07/02(火) 17:50:15.63ID:2TyYMhHV
いやらしい無理してのレスだな
2019/07/02(火) 18:50:36.28ID:p7jTc1Zw
POSIX準拠コマンドの選定基準ってあるのかね
seqのないシステムなんて見たことないんだけどな
seqのないシステムなんて見たことないんだけどな
2019/07/02(火) 19:14:34.05ID:fp/AcynX
https://en.wikipedia.org/wiki/Seq_(Unix)
らしい
らしい
2019/07/02(火) 19:40:34.32ID:p7jTc1Zw
BSD, GNU系だからってことか
でも Solaris(SYSV系)にも入ってたはずだけどな
選定基準はBSDとSYSVの共通項とる感じなのかね
でも Solaris(SYSV系)にも入ってたはずだけどな
選定基準はBSDとSYSVの共通項とる感じなのかね
2019/07/02(火) 20:08:50.12ID:fp/AcynX
seqは初期のUnixの頃にはいらない子だったんだなと
https://en.wikipedia.org/wiki/List_of_Unix_commands
コマンド初出元は方々だね、基準がわからない。お話し合いでじゃないのかな
trは不人気もありお話し合いで上がらないか却下とか
https://en.wikipedia.org/wiki/List_of_Unix_commands
コマンド初出元は方々だね、基準がわからない。お話し合いでじゃないのかな
trは不人気もありお話し合いで上がらないか却下とか
2019/07/02(火) 20:19:23.81ID:p7jTc1Zw
なるほどね
そろそろ改定してもいいんじゃないって思うな
今どき SCCSなんて使ってないでしょw
そろそろ改定してもいいんじゃないって思うな
今どき SCCSなんて使ってないでしょw
2019/07/02(火) 20:28:41.77ID:fp/AcynX
>trは不人気もあり
seqは不人気もありの間違い
なんか今でもコマンドの内容については議論しているようだけどね。コマンドの選定とかもあるかな。議論を見ると時間がかかるのが明らかだけど
seqは不人気もありの間違い
なんか今でもコマンドの内容については議論しているようだけどね。コマンドの選定とかもあるかな。議論を見ると時間がかかるのが明らかだけど
2019/07/02(火) 21:31:39.81ID:rBxHnYzF
2019/07/02(火) 23:55:56.36ID:rBxHnYzF
2019/07/03(水) 00:36:59.38ID:1lX/P2wW
>>96
whileループが1回目の場合にループ変数に初期値の設定、それ以外は加算する必要がある。
だからループの1回目かそれ以外の区別する必要があるんだけど、他にいい方法が思いつかなかった。
見た目まで合わせようとするとこうなるかなと
ま、普通にwhile使えばいいんで、こんな事しないけどねw
whileループが1回目の場合にループ変数に初期値の設定、それ以外は加算する必要がある。
だからループの1回目かそれ以外の区別する必要があるんだけど、他にいい方法が思いつかなかった。
見た目まで合わせようとするとこうなるかなと
ま、普通にwhile使えばいいんで、こんな事しないけどねw
2019/07/03(水) 01:05:12.87ID:1lX/P2wW
あとaliasを使えば、簡単な文法の変換を行えるわけだけど、
aliasを使わないならば、forloop i=0 'i < 2' i+=1; do とは書けずに、
while iterator i=0 'i < 2' i+=1; do のようにwhile と iterator の最低二つの単語が必要だろうね。
aliasを使わないならば、forloop i=0 'i < 2' i+=1; do とは書けずに、
while iterator i=0 'i < 2' i+=1; do のようにwhile と iterator の最低二つの単語が必要だろうね。
2019/07/03(水) 01:37:44.21ID:t0CPqQzZ
>>98
なるほ。ありがとう。
なるほ。ありがとう。
100デフォルトの名無しさん
2019/07/03(水) 13:08:21.29ID:R/PdF9TQ hoge.sh の中で bash hage.sh と実行した時に、なんでなにもしてないのに
hage.shの中ですでに環境変数などが設定されてるんだ?誰が設定してるんだ?って思ったら
BASH_ENVにファイル名を入れておくと、bash hage.sh実行時に
指定されたファイルを読み込むのか・・・
hage.shの中ですでに環境変数などが設定されてるんだ?誰が設定してるんだ?って思ったら
BASH_ENVにファイル名を入れておくと、bash hage.sh実行時に
指定されたファイルを読み込むのか・・・
101デフォルトの名無しさん
2019/07/03(水) 14:51:49.69ID:jC/WE6MC > hoge.sh の中で bash hage.sh と実行
素人質問で済みません、これは無限ループにならないのでしょうか?
ならないなら、どういう仕組みで阻止されてるのでしょうか
素人質問で済みません、これは無限ループにならないのでしょうか?
ならないなら、どういう仕組みで阻止されてるのでしょうか
102デフォルトの名無しさん
2019/07/03(水) 15:22:43.46ID:k7t42OM8 無限ループに条件つけて終了させればいい
どの言語でも一緒
どの言語でも一緒
103デフォルトの名無しさん
2019/07/03(水) 15:25:15.83ID:R/PdF9TQ >>101
ハゲは一人だ
ハゲは一人だ
104デフォルトの名無しさん
2019/07/03(水) 16:12:30.34ID:jC/WE6MC あー、シェルが勝手に阻止してくれるワケではないのですね...
#! /bin/sh
echo "foo!"
bash hoge.sh
これ無限ループになりました。
#! /bin/sh
echo "foo!"
bash hoge.sh
これ無限ループになりました。
105デフォルトの名無しさん
2019/07/03(水) 18:44:48.49ID:sXMtau7O >>103
誰も気づいていないみたいだよw
誰も気づいていないみたいだよw
106デフォルトの名無しさん
2019/07/03(水) 19:21:20.61ID:v/5AoTKN hoge、fuga、piyoは認めるがhageは認めんぞ
俺が禿げているって訳じゃないぞ本当だからな
俺が禿げているって訳じゃないぞ本当だからな
107デフォルトの名無しさん
2019/07/03(水) 19:25:37.57ID:XEr4jr+a うるせーハゲ
108デフォルトの名無しさん
2019/07/03(水) 19:49:42.97ID:pKA2Nnt3 )ソ)
ッλ ノ(.,ノ)
(゙- ..::.::. . (
(ソ. .彡⌒ミ. )ソ)
).::'; (´・ω・`) ス (
ソ .::;';'(つ ⊂)::;';'`〜、.
( :;';' |__∧_| ::;';' ヽ)
`'~`'''`'`'`~'~~`~~'`'`''''"`'`'`''`''''"`'``'~`''`'~`'''`'`'`~
さ あ 禿 げ 上 が っ て ま い り ま し た
ッλ ノ(.,ノ)
(゙- ..::.::. . (
(ソ. .彡⌒ミ. )ソ)
).::'; (´・ω・`) ス (
ソ .::;';'(つ ⊂)::;';'`〜、.
( :;';' |__∧_| ::;';' ヽ)
`'~`'''`'`'`~'~~`~~'`'`''''"`'`'`''`''''"`'``'~`''`'~`'''`'`'`~
さ あ 禿 げ 上 が っ て ま い り ま し た
109デフォルトの名無しさん
2019/07/03(水) 21:40:00.18ID:ehEf7ymj 禿ーゲンダッツ
110デフォルトの名無しさん
2019/07/03(水) 22:05:25.84ID:t0CPqQzZ >>101
$SHLVL変数で判定するんじゃないの?
$SHLVL変数で判定するんじゃないの?
111デフォルトの名無しさん
2019/07/03(水) 23:07:21.62ID:t0CPqQzZ ……と思ったらhogeとhageかよw
クッソwww紛らわしいメタ変数使うなw
普通hogeの次はfugaだろーがよ
クッソwww紛らわしいメタ変数使うなw
普通hogeの次はfugaだろーがよ
112デフォルトの名無しさん
2019/07/04(木) 03:34:12.16ID:KpaWo1Ff commandって便利やな。
シェルスクリプトでオーバーライドができちゃうよ
シェルスクリプトでオーバーライドができちゃうよ
113デフォルトの名無しさん
2019/07/04(木) 07:10:15.99ID:vxwYTSOB114デフォルトの名無しさん
2019/07/04(木) 09:07:36.04ID:BLb3ulq0 command て.... ググラビリティ低すぎでしょ
115デフォルトの名無しさん
2019/07/04(木) 09:37:41.63ID:vxwYTSOB116デフォルトの名無しさん
2019/07/04(木) 10:08:16.55ID:846uO/vY less より vi(/= vim) が軽いので
ページャーとしてパイプの最後に less するのとりかえる
ページャーとしてパイプの最後に less するのとりかえる
117デフォルトの名無しさん
2019/07/04(木) 10:50:19.43ID:8CMbGrkR シェルスクリプトで、実行結果にかかわらず終了コード0を先出しする書き方ってないでしょうか。
背景としては…
openvpnのServer側で、「clientが接続してきたらコマンドを実行」できるんですが、
そのコマンドの終了コードが0でないと以降の処理が進まず、接続が確立されないようなんです。
今回コマンドの目的は「SSHでclientにコマンドを送り込むスクリプト」なので、
コマンドの実行結果なんか見ないで先に接続を確立してくれないと、送り込みようがないです。
なのでopenvpn側には、スクリプトの結果にかかわらず終了コード0を先に返しておいて、
sleepを入れるなり何なりして後からSSHでコマンドを送り込みたいんですが、
/path/to/script.sh && true とか色々試してみるも、一向にスクリプト終了と見なしてもらえません。
何か方法はないでしょうか。
背景としては…
openvpnのServer側で、「clientが接続してきたらコマンドを実行」できるんですが、
そのコマンドの終了コードが0でないと以降の処理が進まず、接続が確立されないようなんです。
今回コマンドの目的は「SSHでclientにコマンドを送り込むスクリプト」なので、
コマンドの実行結果なんか見ないで先に接続を確立してくれないと、送り込みようがないです。
なのでopenvpn側には、スクリプトの結果にかかわらず終了コード0を先に返しておいて、
sleepを入れるなり何なりして後からSSHでコマンドを送り込みたいんですが、
/path/to/script.sh && true とか色々試してみるも、一向にスクリプト終了と見なしてもらえません。
何か方法はないでしょうか。
118デフォルトの名無しさん
2019/07/04(木) 10:58:34.54ID:vxwYTSOB /path/to/script.sh; true
これじゃあかんの?
これじゃあかんの?
119デフォルトの名無しさん
2019/07/04(木) 11:41:34.07ID:97ll0bAQ catとtac
lsとsl
moreとless
nanoとmicro
headとtail
こいつらみたいな言葉遊びって他にもある?
大抵は既存コマンドの改良版が対にされやすいよな
lsとsl
moreとless
nanoとmicro
headとtail
こいつらみたいな言葉遊びって他にもある?
大抵は既存コマンドの改良版が対にされやすいよな
120デフォルトの名無しさん
2019/07/04(木) 11:54:20.16ID:VX27EPul121デフォルトの名無しさん
2019/07/04(木) 12:16:55.68ID:KpaWo1Ff >>117
終了コードを先出しするの意味がわからんが、
まあ中断しないようにしたいということだとして。
まず途中で中断するのは set -e されてるから
set -e されてる状態だとコマンドの終了コードが0以外だとそこで中断されてしまう。
中断されなくする一番簡単な方法は
hige ||: ・・・終了コードが0以外でも中断せず、かつ終了コードを0にする
hige &&: ・・・終了コードが0以外でも中断せず、かつ終了コードはそのまま保持する
あと、if hige; then 〜 みたいに if や while の中に入れてもOK
if や while は、コマンドの終了コードを条件に処理を分岐するので
これらの中に入れても中断しなくなる。
終了コードを先出しするの意味がわからんが、
まあ中断しないようにしたいということだとして。
まず途中で中断するのは set -e されてるから
set -e されてる状態だとコマンドの終了コードが0以外だとそこで中断されてしまう。
中断されなくする一番簡単な方法は
hige ||: ・・・終了コードが0以外でも中断せず、かつ終了コードを0にする
hige &&: ・・・終了コードが0以外でも中断せず、かつ終了コードはそのまま保持する
あと、if hige; then 〜 みたいに if や while の中に入れてもOK
if や while は、コマンドの終了コードを条件に処理を分岐するので
これらの中に入れても中断しなくなる。
122デフォルトの名無しさん
2019/07/04(木) 12:22:58.60ID:KpaWo1Ff123デフォルトの名無しさん
2019/07/04(木) 12:29:18.19ID:vxwYTSOB124117
2019/07/04(木) 14:12:34.15ID:8CMbGrkR >>118,120
;も&もダメでした。
>>121
ちょっと理解し切れてるかわかりませんが、
;や&の代わりに||を試しても、同じ結果でした。
>>122
その接続時スクリプト実行機能で、自作スクリプトを実行しようとしているが、
自作スクリプトのexitcode 0を確認しない限り接続が確立されないので、
接続できている前提の自作スクリプトがうまく動かない、という話です。
その後、試行錯誤してうまくいったんですが、
・openvpnの接続時スクリプト1は、別のスクリプト2を&付きで実行してすぐexit 0で終了
・別のスクリプトにやりたい処理を記述、終わったらexit 0
こういう方法でした。
;も&もダメでした。
>>121
ちょっと理解し切れてるかわかりませんが、
;や&の代わりに||を試しても、同じ結果でした。
>>122
その接続時スクリプト実行機能で、自作スクリプトを実行しようとしているが、
自作スクリプトのexitcode 0を確認しない限り接続が確立されないので、
接続できている前提の自作スクリプトがうまく動かない、という話です。
その後、試行錯誤してうまくいったんですが、
・openvpnの接続時スクリプト1は、別のスクリプト2を&付きで実行してすぐexit 0で終了
・別のスクリプトにやりたい処理を記述、終わったらexit 0
こういう方法でした。
125デフォルトの名無しさん
2019/07/04(木) 14:21:40.05ID:vxwYTSOB 今さらだけどPOSIXでpushdとかって「未定義」なんだな。
つまりこれらの字句が来たとき、pushdコマンドが実行されるかもしれないと想定しなきゃいけない。
つまりこれらの字句が来たとき、pushdコマンドが実行されるかもしれないと想定しなきゃいけない。
126デフォルトの名無しさん
2019/07/04(木) 14:44:38.64ID:VFVr1rb1127デフォルトの名無しさん
2019/07/04(木) 18:16:12.18ID:KBMDzr/H128デフォルトの名無しさん
2019/07/04(木) 18:44:40.09ID:Nr3czBjG129117
2019/07/04(木) 18:54:04.40ID:8CMbGrkR130デフォルトの名無しさん
2019/07/04(木) 19:05:50.51ID:zzPJIhEP■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 麻生太郎が石破政権の1年を酷評「どよーんとして何も動かない感じだったな。それに引き換え高市政権は物事が動いている」 [597533159]
- 【速報】室井佑月、米山隆一との離婚を決意wwwwwwwwwwwwwwwwwwww [802034645]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★4
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- (´・ω・`)ペンギンが好きなんだが
