スクリプトで時間コマンドを使用し、それを変数に入れて(多くのコマンドで使用する必要がある)、単一の変数のみを変更できるようにしたいと思います。
簡単に言えば、これが私が試したことです。
PROFILING="/usr/bin/time -f 'time: %e - cpu: %P'" ; $PROFILING ls /usr
次のように翻訳したいと思います。
# /usr/bin/time -f 'time: %e - cpu: %P' ls /usr
bin games include lib local sbin share src
time: 0.00 - cpu: 0%
しかし、私はこれを得ます:
/usr/bin/time: cannot run %e: No such file or directory
Command exited with non-zero status 127
'time:
どんな提案がありますか?
ありがとう
答え1
ワードセパレータは拡張変数の引用符を認識しません。代わりに配列を使用してください。
profiling=(/usr/bin/time -f 'time: %e - cpu: %P')
"${profiling[@]}" ls /usr
またはalias
:
shopt -s expand_aliases # needed in scripts
alias profiling="/usr/bin/time -f 'time: %e - cpu: %P'"
profiling ls /usr
または機能:
profiling() { /usr/bin/time -f 'time: %e - cpu: %P' "$@"; }
profiling ls /usr