No.4ベストアンサー
- 回答日時:
bashをご使用と判断して
res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。
> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。
#!/bin/bash
str=1
i=0
echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'
while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done
date '+%H:%M:%S.%N'
exit
$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをexprに書き換えたところ
$ ./test2.sh
Using expr
09:19:00.302748000
09:19:19.259990000
exprだと19秒ですが、$(( 演算 )) だと10秒程度なので、演算が多くなれば確かにexprは不利ですね。
No.2
- 回答日時:
> exprもやってみたのですが、処理が遅くなるので使いません。
> 他の方法ないですか?
expr では処理が遅くなるとのことですが、いったいどのような重い処理をされているのでしょう?
シェルに算術演算の機能はありませんので、シェルスクリプトで算術演算を行う場合はどうしても外部コマンドを呼び出すしか方法がありません。
また、処理速度が問題になるのでしたら、より高速な処理が可能な言語(例えば Perlなど)で書き換えた方が簡単に実現可能かもしれません。
あるいは、処理方法(アルゴリズム)自体を見直すとか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) test([)コマンドによる条件判定 2 2022/08/10 12:28
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
cshの文字列操作(0埋め)
その他(プログラミング・Web制作)
-
ファイル内の数字を計算したい、たし算。
UNIX・Linux
-
Cシェル内でBシェルの様な関数の記述方法はありますか?
UNIX・Linux
-
-
4
Kシェルでの文字型→数値型変換
その他(プログラミング・Web制作)
-
5
UNIX(Cシェル)での数値判断での条件分岐がうまくいきません。
UNIX・Linux
-
6
Red Hat 7.1 に rshできない(~/.rhostsの設定後)
その他(OS)
-
7
cshでのリンクファイルの存在確認方法
その他(OS)
-
8
プロセスIDの取得方法
C言語・C++・C#
-
9
cshで文字列分割
その他(プログラミング・Web制作)
-
10
シェルスクリプトでオラクルのエラーメッセージを取得するには
Oracle
-
11
scpコマンドでリモートサーバのファイルを削除したい
UNIX・Linux
-
12
cshでエラー出力を出さないようにしたい
UNIX・Linux
-
13
スクリプトのエラー「unexpected EOF while looking for matching `'」の解決法は?"
UNIX・Linux
-
14
TOPコマンドで表示するCPU使用率で100%以上の表示について
UNIX・Linux
-
15
gitでバージョン指定してダウンロードする方法教えて下さい。
オープンソース
-
16
パスワード設定していないユーザーのログイン
UNIX・Linux
-
17
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
特定の名前のオートシェイプの...
-
特定のファイルを他のプロセス...
-
VB6にてネットワーク上にある共...
-
ドリブン??
-
private subモジュールを他のモ...
-
Linux(CentOS)にでcronとシェル...
-
For ~ Next文
-
C++ Thread::Sleep()について
-
ExcelのVBAで、選択したファイ...
-
VB6で定時刻処理
-
順番に処理させたい
-
vbaのエラー対応(実行時エラー...
-
【VBA】エラー処理で別プロシー...
-
ListViewから選択中の文字列を取得
-
Word VBA。各マクロの間に待ち...
-
COBOL OCCURSで指定したデータ...
-
VBA 複数の行を高速で削除する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
Functionで戻り値を複数返す方法
-
特定の名前のオートシェイプの...
-
ExcelのVBAで、選択したファイ...
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
VBA 複数の行を高速で削除する...
-
Excel VBA セルの名前があるか...
-
特定のファイルを他のプロセス...
-
Word VBA。各マクロの間に待ち...
-
どうやってもFor文を抜けてしま...
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
シェルスクリプトでファイル内...
-
【Vb.net】プリンタジョブの取得
-
vbaのエラー対応(実行時エラー...
-
VBAでBook読み込み時の非表示方...
おすすめ情報