人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

bashスクリプトにおいて、

コマンドを実行しながら、そのコマンドを画面に表示したいです。
具体的にいうと たとえば

echo "cp aaa.txt bbb.txt"
cp aaa.txt bbb.txt


echo $(cp aaa.txt bbb.txt)
みたいな感じで、実行しながらechoしたいです。
うまくいきません。教えてくださいませ。



●質問者: central_dogma
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● nattow
●50ポイント
c='cp aaa.txt bbb.txt';echo ${c} && ${c}

こんな感じですかね?

dummy url : http://q.hatena.ne.jp/


central_dogmaさんのコメント
やはりそのような方法しかないんでしょうか。

2 ● a-kuma3
●150ポイント ベストアンサー

スクリプトの全部を、そのようしたいのであれば、スクリプトの先頭行に

#! /usr/bin/bash とか書いてあるところに、-x を書きます。

#! /usr/bin/bash -x

細かくコントロールしたいなら、スクリプトの中で set を使って、スイッチを on / off します。

#! /usr/bin/bash

echo a

set -x  # echo を on にする
echo b
set +x  # echo を off にする

echo c

上記を実行すると、以下のように表示されます。

a
+ echo b
b
+ set +x
c

以下、は bash のコマンドです。

http://www.linuxcertif.com/man/1/bash/ja/


もしかしたら、-x よりは、-v の方が欲しいものになるかもしれません。



(追記)

set -x とあんまり変わらんと思うんですが、こんなのでどうでしょうか?

#! /usr/bin/bash

echo_and_do () {
 echo "$1"
 eval "$1"
}


echo_and_do "echo a"
echo_and_do "echo b"

central_dogmaさんのコメント
http://shellscript.sunone.me/ のサイトでかなり勉強したので、その方法は知っているのですが、なんというか。 デバッグプリントっぽいのはいやなんです。

a-kuma3さんのコメント
度の辺りが、デバッグプリントっぽいんでしょうか? 頭についてる "+" ? というわけで、回答を追記してみました。

a-kuma3さんのコメント
×:度の辺りが ○:どの辺りが

central_dogmaさんのコメント
これいいです! ありがとうございます?。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ