トップページ > プログラム > 2019年07月23日 > ecacfG7E

書き込み順位&時間帯一覧

2 位/165 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000000110064000000012



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Qiita
シェルスクリプト総合 その30
fortranできる人初心者のわいに教えてくれ

書き込みレス一覧

Qiita
107 :デフォルトの名無しさん[sage]:2019/07/23(火) 11:39:14.09 ID:ecacfG7E
ヲチ対象とかなんやそれw
そんなのいちいち覚えてない
Qiita
109 :デフォルトの名無しさん[sage]:2019/07/23(火) 12:18:31.43 ID:ecacfG7E
いやだから、俺の脳のメモリ容量を
そんな人間のために使いたくないってこと

Qiitaの人間なんて、だれかしらんがあほやなーでおしまい
シェルスクリプト総合 その30
350 :デフォルトの名無しさん[sage]:2019/07/23(火) 15:31:44.56 ID:ecacfG7E
case $1 in # $1にダブルクォートはいらない
 *[!0-9]* ) ;; # 数字以外が含まれている = 整数ではない
 *) ;; # それ以外 = 整数である
esac



if [ $# -eq 0 ]; then
 read -r data
else
 data=$1
fi
とかいろいろ
シェルスクリプト総合 その30
351 :デフォルトの名無しさん[sage]:2019/07/23(火) 15:32:56.13 ID:ecacfG7E
> 数字の前に マイナス記号がついている可能性がある

case ${1#-} in

こうすればよい
シェルスクリプト総合 その30
352 :デフォルトの名無しさん[sage]:2019/07/23(火) 15:36:47.54 ID:ecacfG7E
$1があるかどうかじゃなくて、echoなどで流し込まれているかどうかなら

if [ -t 0 ]; then
 # 流し込まれてなどいない
else
 # 流し込まれている
fi
シェルスクリプト総合 その30
353 :デフォルトの名無しさん[sage]:2019/07/23(火) 15:43:42.61 ID:ecacfG7E
所でcaseって戻り値を返すって知ってる?

isint() {
 case $1 in
  *[!0-9]* ) false ;;
  *) true ;;
 esac
}

if isint 1; then
 echo int
fi

とか、

if case $1 in *[!0-9]* ) false ;; *) true ;; esac; then
 echo int
fi

とか

if ! case $1 in *[!0-9]* ) false; esac; then
 echo int
fi

とか書けるよ
シェルスクリプト総合 その30
354 :デフォルトの名無しさん[sage]:2019/07/23(火) 15:47:46.96 ID:ecacfG7E
> if ! case $1 in *[!0-9]* ) false; esac; then
間違えたw !いらない

最短かな?
if case $1 in *[!0-9]*) false; esac; then
echo int
fi

ワンライナーw
isint() { case $1 in *[!0-9]*) false; esac; }
シェルスクリプト総合 その30
355 :デフォルトの名無しさん[sage]:2019/07/23(火) 15:50:04.40 ID:ecacfG7E
あ、空文字のときにintになるね。こうすればよい

isint() { case $1 in ''|*[!0-9]*) false; esac; }
fortranできる人初心者のわいに教えてくれ
2 :デフォルトの名無しさん[sage]:2019/07/23(火) 16:00:27.19 ID:ecacfG7E
フォーと乱
シェルスクリプト総合 その30
358 :デフォルトの名無しさん[sage]:2019/07/23(火) 16:12:19.43 ID:ecacfG7E
if case $1 in *[!0-9]*) false; esac; then
 echo int
fi

こっちのほうが短いかw
case $1 in *[!0-9]*) :;; *)
 echo int
esac
シェルスクリプト総合 その30
360 :デフォルトの名無しさん[sage]:2019/07/23(火) 16:15:43.02 ID:ecacfG7E
trueはさっき俺が書いたけど、別にいらない

isint() { set -- "$1"
case ${1#-} in
''|*[!0-9]*) return 22
esac
}

> 「$1が設定されていなければ標準入力を$1に」というのはシェルスクリプトでは
こっちも書いたはずだが? cat "$1" or cat "/dev/stdin" の話でもしてたのか?
シェルスクリプト総合 その30
361 :デフォルトの名無しさん[sage]:2019/07/23(火) 16:16:28.44 ID:ecacfG7E
cat呼び出しは遅いから、read使ったんだが?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。