[過去ログ] 【貝】第1回シェル講座【殻】 (969レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(11): いいちこ 02/03/17 22:46 AAS
第1回シェル講座はじまるよ。
みんないいかい?

#!/bin/sh
echo 'Hello World'

これを実行すると
Hello World
って表示されるんだ。
OK?
950
(1): 04/08/09 02:26 AAS
>>947
それ、別プロセス以前に、最後の read が $tmp を空にしてる気がする。

とりあえず、
seq 10 | ( while read tmp; do tmp1=$tmp; done; echo $tmp1 )
みたいにしたら、 tail -1 みたいな動作はしたよ。
951: 947 04/08/09 08:51 AAS
>>948-950
あ、そうか。
whileでEOFを読んじゃってるのか。
そりゃ空になってますね。
ありがとうございました。
他の方法でやってみます。
952
(4): 04/08/09 23:12 AAS
すみません質問なんですが、
Kshで、片方若しくは両方の変数に2ギガを超える数値を設定して
[[ $inumA -gt $inumB ]]
のような条件式を使うと期待した結果が出ないのですが

対応策のようなものをご存知の方居たらご教授いただきたく。
ちなみにOSはHP-UXです
953: 04/08/09 23:33 AAS
perlかawk使えと怒られそうですが。

cshでファイルに書かれている内容を1行ずつ処理をしたいのですが、これって
やっぱり無理なんでしょうか?
954
(1): 04/08/10 00:52 AAS
>>952
ハードのモデルは?
HP-UX のバージョンは?
955
(5): 04/08/10 01:36 AAS
>>952
確か、桁が多い数値の比較はbcコマンドでやればいいんじゃなかったかな。
956
(2): 952 04/08/10 22:36 AAS
>>954
ハードは多分HPです。
OSは11.00でした。

>>955
シェルでbcコマンドって使ったことがないのですが
自分の例で行くと
[[ `echo $inumA | bc -l ` -gt `echo $inumB | bc -l ` ]]
のような形になるのでしょうか。(-gtは>になる??)
ともあれ早速試してみます。ありがとうございます(ぺこり)
957
(1): 955 04/08/11 00:06 AAS
>>956
確かこう。
A="1234567890999"
B="2234567890999"
if [ "$(echo "${A} < ${B}" | bc)" -eq 1 ]
then
echo ok
fi
958
(1): 955 04/08/11 19:49 AAS
>>956
スマソ。957のはcygwinでは出来たけどHP-UXじゃ出来ないかも。
こんなのはどお?

export A="12345678999999999"
export B="22345678999999999"
if awk 'END{if(ENVIRON["A"]+0 > ENVIRON["B"]+0) exit 1}' /dev/null
then
echo ok
fi
959
(2): 04/08/16 14:57 AAS
とある環境変数が、
- そもそも定義されていない
- 定義されているけれども、値が「""」(空白文字列)である
を sh で判定する方法を教えてください。

現在は set を使って以下のような醜い方法で判定しています。

#!/bin/sh

isDefined(){
set | grep "^${1}=" > /dev/null && return 0
return 1
}
省3
960
(1): 04/08/16 15:23 AAS
>>959
printenv
961
(1): 04/08/16 18:17 AAS
% cat hoge.sh
#!/bin/sh
x=""
echo ${x+"x is defined"}${x-"x is not defined"}
echo ${y+"y is defined"}${y-"y is not defined"}

% sh hoge.sh
x is defined
y is not defined
962
(2): 04/08/16 21:15 AAS
>>960
以下のように試してみましたが、ヒントから手がかりがつかめません。
もうちょっとヒントください。(-人-)

#!/bin/sh
x=""
printenv $x
echo $?
printenv $y
echo $?

>>961
省15
963: 04/08/16 21:45 AAS
最初に環境変数って言ったから printenv が出てきたんだと思う。
本当に環境変数なら俺も printenv に一票入れるが、
どうもやりたいことは違いそうだな。
964: 04/08/16 22:59 AAS
>>962
仕様をよく読んでないけど test -z じゃだめなん?
965
(1): 952 04/08/16 23:55 AAS
>>955

返事遅れてすみません。
>>957のほうは今日試してみて稼動確認取れました。
>>958はまだ試してないんですが、今度チャレンジしてみたいと思います。
本当にありがとうございました
966: 955 04/08/17 00:46 AAS
>>965
957のほうで出来ましたか。オレが試したHP-UXだと出来なかった。
最近知ったんだけど、こっちのほうがいいかも。解かり易い。
if expr ${A} '>' ${B} > /dev/null
then
echo ok
fi

bc,awk,expr、桁の制限でいったらどれが一番イケるんだろ?
967: 04/08/17 05:01 AAS
>>959 は、
環境変数→変数
空白文字列→空文字列
の間違いか。

>>962
961ではないが、こんな感じでいいのかな。

#!/bin/sh

isDefined () {
if eval [ x'${'"$1"'+0}' = x"0" ]; then
return 0
省8
968
(1): 04/08/17 11:20 AAS
isDefined(){
eval return \${${1}+0}\${${1}-1}
}
969: 04/08/18 22:39 AAS
>>968
それだと値が入っているときにおかしくならないか?というわけで、、

isDefined(){
eval \${$1+true} false
}
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.161s*