2017年3月2日

エディタを使わずにファイルを作成するには?(catコマンド)

catコマンドは標準入力から文字列(テキストストリーム)を受け取ります。これを利用して、

【書式】cat > ファイル名

という形で、複数行のテキストファイルを生成できます。入力を終えるには[Ctrl]+[D]キーを押します。ちょっとしたシェルスクリプトなどを作成するのに便利です。

$ cat > testfile.sh
echo -n "Who are you? "
read username
echo "Hello, $username!"

ファイルの内容を確認してみます。

$ cat testfile
echo -n "Who are you? "
read username
echo "Hello, $username!"

なお、ヒアドキュメントという入力リダイレクトを使う方法もよく紹介されていますが、変数が展開されてしまう点に注意が必要です。次の例を見てください。

$ cat > testfile << EOF
> echo $PATH
> $(date)
> EOF
$ cat testfile
echo /home/north/.nvm/versions/node/v7.4.0/bin:/home/north/.rbenv/shims:/home/north/.rbenv/bin
:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/go/bin
2017年  3月 2日 水曜日 19:05:00 DST

指定した文字列(ここではEOF)を入力するまで続けて入力できますが、変数やコマンドが展開されてしまっています。最初に挙げた方法であれば、変数は展開されず、そのままファイルに書き出せます。

$ cat > testfile
echo $PATH
$(date)
$ cat testfile
echo $PATH
$(date)



0 件のコメント:

コメントを投稿