タグ

Linuxとshellに関するplueaのブックマーク (3)

  • sudoでリダイレクトをしたいとき - Y's note

    sudoでリダイレクトに失敗 @yutakikuchi_です。 UNIX/Linuxでコマンドラインで実行した結果をファイルにリダイレクトしたい時があります。(例えばPHPのバッチを実行した時に処理のログとエラーログをファイルに書き込んでおきたい。) ユーザに実行権限がないディレクトリのファイルに対してリダイレクトでデータを書き込みたいとき、sudo をつけても失敗します。 次はリダイレクトが失敗する例です。zsh: permission deniedと怒られます。 $ sudo echo 'redirect' >> /var/test/hoge.txt zsh: permission denied: /var/test/hoge.txt うまくいく方法 以下に方法を書きます。私が知る限りでは2つ方法があります。 回避策1 : shのオプションに-cを付ける man sudoを見てみます。

    sudoでリダイレクトをしたいとき - Y's note
  • 変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → 他のプログラミング言語と同様に = を使用する。 シェルスクリプトでも C言語などと同様に = を使用することで変数に値を設定することができる。ただし、C言語とは違い = の前後にスペースがあってはいけない。 また、変数名の大文字と小文字は区別されるため変数 VAR と変数 var は別物として扱われる。さらにシェル変数に「型」は存在しないので、文字列や数値を区別なく設定できる。 ポイントをまとめると以下のとおりとなる。 = を使う 値の設定時は変数名の先頭に $ を付けない ($ は参照時のみ) = の前後にスペースを入れない (前後にスペースがあるとエラー) 型は存在しない (declare コマンドや typeset コマンドで似たようなことができるが推奨はしない) 変数名の大文字・小文字は区別される (VAR と var は別物) 特に「2」は初心者が犯しがちなミスなので注意す

    変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → -d 'N days ago' オプションで N 日前の日付を取得できる。 Linux では拡張された GNU date コマンドが使用できるので、簡単に過去の日付を取得できる。 $ date 2007年 6月 2日 土曜日 23:05:20 JST #↑そのまま実行すると当日の日時が表示される。 $ date -d '1 days ago' 2007年 6月 1日 金曜日 23:05:31 JST #↑1日前を指定すると、現在日時から24時間前の日時が表示される。 「GNU date」が使用できない場合 → 一時的に環境変数 TZ を変更した上で date コマンドを実行する。 古い UNIX マシンなどでは、「GNU date」が使用できない場合が多い。そういった環境では、一時的にタイムゾーンを変更して date コマンドを実行することで、過去の日付を取得することができる。 $ e

    日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 1