Cシェルのリダイレクトまとめ
業務都合でcシェルを読んでみたけどリダイレクトがよくわかんなかったので覚書。
記号でググっても検索エンジンは引っ張ってきてくれないからね。
上書きと追記
これは他のshellと同じ。
上書きの場合
echo hoge > hoge.txt
追記の場合
echo hoge >> hoge.txt
言うまでもない感じ。
エラー
検索しようにも記号だけでなかなか出てこない曲者。
リダイレクト記号 + アンパサンド(アンド)
rm hogehoge >& hoge.txt
ちなみに出力は以下の通り。
cat hoge.txt
rm: cannot remove 'hogehoge': No such file or directory
標準出力とエラー出力とかの詳しい記事は以下を参照。とてもわかりやすい!
noclobber変数が設定されている場合
noclobber変数をSETしているとリダイレクトによる上書き処理( > )が禁止される。
(個人で設定している人はあまりいないだろうけど)
その状態でも強制的にリダイレクトによる上書き処理をしてしまいたい場合は以下の通り。
リダイレクト + エクスクラメーション(ビックリ)
echo hoge >! hoge.txt
詳しくは以下の素晴らしい記事に(省略)
ファイル出力もリダイレクトもしたい!
コマンドteeを使う。
rm hogehoge |& tee hoge.txt
rm: cannot remove 'hogehoge': No such file or directory
出力されたファイルも以下の通り。
cat hoge.txt
rm: cannot remove 'hogehoge': No such file or directory
以上でした。