스크립트에서 시간 명령을 사용하고 이를 변수에 넣어(많은 명령에 사용해야 함) 단일 변수만 수정할 수 있도록 하고 싶습니다.
간단히 말해서 이것이 내가 시도한 것입니다.
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