[過去ログ] 【貝】第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*