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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: 2018/08/02(木)05:22 AAS
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。
 bash/zsh/ksh/ash/dash/yash/poshなどの専用機能に依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
・POSIXについてのリンクは 外部リンク:en.wikipedia.org にまとめられています
 最新の仕様はこちらへ 外部リンク:pubs.opengroup.org
 (左上の「Shell & Utilities」 から参照することができます。)
・v7 shに一番近くて、現役(?)のshは、OpenSolaris由来のheirloom sh。
省22
601: 2022/11/06(日)18:24 AAS
Autoconf/AutotoolsはGNUだからじゃね?しらんけど
602
(2): 2022/11/07(月)01:26 AAS
rsync -avR -e ssh ...
rsync -avR -e ssh ...

このように6行以上書くとエラーになるんですがどうしてでしょう?

ssh: connect to host xxxx: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(228) [sender=3.2.3]
603: 2022/11/07(月)06:20 AAS
6行以上書いたからじゃね?
604
(1): 2022/11/07(月)07:38 AAS
>>602
クライアントからの接続要求の処理中に次の接続要求が来たら待たせるようになっててそのバッファが5個だからそれ以上に次々と接続要求きたらConnection refusedを返すようになってる
少し時間を空ければ大丈夫なはず
てか、サーバーは何?
605: 602 2022/11/07(月)11:40 AAS
>>604
ありがとうございます。そうでしたか。
コマンドの内容と関係無さそうだったので迷いました。
接続先のサーバーは自宅のraspiです。
606: 2022/11/08(火)09:01 AAS
もしかしてファイル転送を多重化しようとしてるのかな そういうオプションがあったような気がするけどね rsync
607: 2022/11/08(火)23:15 AAS
はい、ぶたがみーるー
まあ、ここにも俺がいるわけですけどねw
608: 2023/03/27(月)06:41 AAS
バックしまーす
609: 2023/06/18(日)23:35 AAS
function YesNo {
local yn
while true; do
read -p " [Yes/No" "$1" "]: " yn
case $yn in
[Yy]*) return 0 ;;
[Nn]*) return 1 ;;
[Ee]*) if [ ! "$1" = "" ]; then return 2; fi ;;
esac
done
省7
610
(1): 2023/06/19(月)06:14 AAS
-p に渡っているのは " [Yes/No" だけで、残りの "$1" と "]: " は yn と同じく変数名として解釈されている

read -p " [Yes/No $1 ]: " yn
611: 2023/06/23(金)17:18 AAS
テスト
612: 2023/08/23(水)21:31 AAS
これってどうしてそうなのだろう?
613: 2023/08/27(日)18:57 AAS
readコマンドの引数にダブルクォートを使ってるからだぬ
だから>>610氏が指摘しているコトになってるぬ
614
(1): 02/20(火)08:47 AAS
先にBを算出することもなく変数の追加もなしで処理2を1箇所にすることは可能でしょうか?
if [ A ]; then
Bを算出
if [ B ]; then
 処理1
else
 処理2
fi
処理2
fi
615
(1): 02/20(火)14:15 AAS
2度目のエルスを書かなければいいだけじゃなくて?
616: 02/20(火)17:32 AAS
>>615
「処理2」は2度処理される必要があるのかもしれん。例えば、ステータスを1 upするような。

出題者はおそらくelse節を冗長処理として、1度きりの処理の意味で「1箇所にする」と要件を定義したのだろう。
が、現実にこんなアバウト野郎のかもす空気を読んでウカウカとelse節を削ると、分かりにくいバグになったりする。

なので、問題を正確に記述しろ糞ボケと回答すべきだと思う。
617: 02/22(木)06:05 AAS
>>614
else 足りなくね
処理2を1度または2度実行するのに、1箇所にしたいとかイミフ

!Aだったら処理2をする つもりなら、そのまま書けばいいだけだな。シェルスクリプトならw
Bを前もって算出できるなら、[ A -a B ] って本人も分かってるだろうが、Bを算出することもなくでも、そのまま書こうと思えばかけるわな、 [ A -a { Bを算出; B; } ] 風に
618: 02/22(木)18:42 AAS
{ ifを何重にもネストしたブロック } || 処理2
みたいなのでも
619: 03/14(木)17:20 AAS
while ...do
処理1
done <<=LIST=
リスト1
=LIST=

while ...do
処理2
done <<=LIST=
リスト1
=LIST=
省6
620: 03/14(木)18:05 AAS
ヒアドキュメントの中で変数を展開できます。

LIST_CONTENT="リスト1
...
"

while read s; do
printf '%s\n' "${s}"
done <<LIST
${LIST_CONTENT}"
LIST
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.205s*