質問: いつもお世話になっております。 シェルスクリプトを書いているのですが スクリプト内で cd /home/ ls -ltr > /tmp/test.log という感じで書いているのですが logファイルにはlsの出力結果が書かれます。 実現したいことは ls -ltr というコマンドを打ったことをログに出力させたいです。 cat /tmp/test.log ls -ltr -rwxrwxrwx...(略) という風に打ったコマンド+出力結果となるようにしたいです。 できる方法はありますでしょうか? 今の所 echo ls -ltr ls -ltr 位しか思い付きませんでした。 ご存知の方いらっしゃいますでしょうか?
回答: 下記に同様の話題がありました。 http://stackoverflow.com/questions/2853803/in-a-shell-script-echo-shell-commands-as-they-are-executed これによると、あなたの求めている挙動は-vオプションで実現できるようです。 具体的には以下のように、いくつかの適用方法があるようです。 * シェルスクリプト1行目を「#!/bin/bash -v」にする * シェルスクリプトに「set -v」を追記する * 「bash -v script.sh」のように起動する