2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

614 :名無しさん@お腹いっぱい。:2023/06/19(月) 06:14:08.74 .net
-p に渡っているのは " [Yes/No" だけで、残りの "$1" と "]: " は yn と同じく変数名として解釈されている

read -p " [Yes/No $1 ]: " yn

615 :名無しさん@お腹いっぱい。:2023/06/23(金) 17:18:03.40 .net
テスト

616 :名無しさん@お腹いっぱい。:2023/08/23(水) 21:31:25.96 .net
これってどうしてそうなのだろう?

617 :名無しさん@お腹いっぱい。:2023/08/27(日) 18:57:22.73 .net
readコマンドの引数にダブルクォートを使ってるからだぬ
だから>>614氏が指摘しているコトになってるぬ

618 :名無しさん@お腹いっぱい。:2024/02/20(火) 08:47:58.81 .net
先にBを算出することもなく変数の追加もなしで処理2を1箇所にすることは可能でしょうか?
if [ A ]; then
Bを算出
if [ B ]; then
 処理1
else
 処理2
fi
処理2
fi

619 :名無しさん@お腹いっぱい。:2024/02/20(火) 14:15:04.07 .net
2度目のエルスを書かなければいいだけじゃなくて?

620 :名無しさん@お腹いっぱい。:2024/02/20(火) 17:32:39.42 .net
>>619
「処理2」は2度処理される必要があるのかもしれん。例えば、ステータスを1 upするような。

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

なので、問題を正確に記述しろ糞ボケと回答すべきだと思う。

621 :名無しさん@お腹いっぱい。:2024/02/22(木) 06:05:52.23 .net
>>618
else 足りなくね
処理2を1度または2度実行するのに、1箇所にしたいとかイミフ

!Aだったら処理2をする つもりなら、そのまま書けばいいだけだな。シェルスクリプトならw
Bを前もって算出できるなら、[ A -a B ] って本人も分かってるだろうが、Bを算出することもなくでも、そのまま書こうと思えばかけるわな、 [ A -a { Bを算出; B; } ] 風に

622 :名無しさん@お腹いっぱい。:2024/02/22(木) 18:42:19.24 .net
{ ifを何重にもネストしたブロック } || 処理2
みたいなのでも

623 :名無しさん@お腹いっぱい。:2024/03/14(木) 17:20:13.74 .net
while ...do
処理1
done <<=LIST=
リスト1
=LIST=

while ...do
処理2
done <<=LIST=
リスト1
=LIST=

てののリスト1を一つにできんべか。ただし、リスト1全てに対し処理1をし終えてから処理2を行なう必要があるので、

while ...do
処理1
処理2
done <<=LIST=

ではあかん。

624 :名無しさん@お腹いっぱい。:2024/03/14(木) 18:05:33.59 .net
ヒアドキュメントの中で変数を展開できます。

LIST_CONTENT="リスト1
...
"

while read s; do
printf '%s\n' "${s}"
done <<LIST
${LIST_CONTENT}"
LIST

総レス数 624
193 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200