[解決済み] BASHでmvを使ってファイル名にタイムスタンプを追加する。
質問
私はLinuxの初心者ですが、簡単なbashスクリプトで問題を抱えています。
私は、実行中にログ ファイルに追加するプログラムを持っています。時間が経つにつれて、そのログ ファイルは巨大になります。私は、各実行前にログ ファイルをリネームして移動するスタートアップ スクリプトを作成したいと考え、効果的にプログラムの各実行に対して個別のログ ファイルを作成します。以下は、私がこれまでに得たものです。
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
実行すると、このようになります。
: command not found
program
logsディレクトリにcdしてdirを実行すると、このように表示されます。
201111211437\r.log\r
どうなっているのでしょうか?私が見逃している構文の問題があると仮定していますが、それを理解することができないようです。
UPDATE: 下の shellter のコメントのおかげで、問題は、私が Windows の Notepad++ で .sh ファイルを編集し、それから ftp でサーバーに送信し、ssh でファイルを実行しているという事実によることがわかりました。ファイル上でdos2unixを実行した後、それは動作します。
新しい質問です。ファイルを再送するたびにこの修正を実行する必要がないように、最初の場所でファイルを正しく保存するにはどうしたらよいでしょうか。
どのように解決するのですか。
あなたのスクリプトから投稿された数行は、私には問題ないように見えます。それはおそらく、もう少し深いものです。
どの行がこのエラーを与えているかを見つける必要があります。追加
set -xv
をスクリプトの先頭に追加してください。これは、行番号と実行されているコマンドを出力して
STDERR
. これは、スクリプトのどこでこの特定のエラーが発生したかを特定するのに役立ちます。
ところで、あなたは
シバング
をスクリプトの先頭につけていますか?このような場合、私は通常、Shebangの問題であると考えます。たとえば、あなたが
#! /bin/bash
があって、bash インタプリタが
/usr/bin/bash
にある場合、このエラーが表示されます。
EDIT
新しい質問です。ファイルを再送信するたびにこの修正を行う必要がないように、最初の段階でファイルを正しく保存するにはどうすればよいでしょうか。
2 つの方法があります。
- を選択します。 編集->EOL変換->Unixフォーマット メニュー項目を選択します。いったん正しい改行コードが設定されると、Notepad++ はそれを保持します。
- すべての新しいファイルが正しい改行コードになるようにするために 設定->環境設定 メニュー項目を開き 環境設定 ダイアログボックスを表示します。その中から 新規文書/既定のディレクトリ タブを選択します。下の 新規ドキュメント と フォーマット を選択し Unix のラジオボタンをクリックします。をクリックします。 閉じる ボタンをクリックします。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
deepin20の不正確な時刻表示を調整する方法は?Deepinの時刻補正方法
-
Linux Mintシステムでプログラムをアンインストールするには? Linux で不要なアプリケーションをアンインストールするためのヒント
-
Linux MintのデスクトップでNoteをイタリックにすることは可能ですか?
-
Linux Mintでフェード効果をオンにする方法は?
-
[解決済み] WindowsからLinuxへのscpにputtyを使用する
-
[解決済み] IOCTL Linuxデバイスドライバ [終了しました]
-
[解決済み] bash sh - command not found [重複].
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?