적어도 옵션을 변수에 부분적으로 저장할 수 있습니다.
opts=$(echo --{ignore-case,word-regexp,count,exclude='"sys*.*"'})
마스킹이 어려울 수 있으므로 테스트가 중요합니다.
echo $opts
--ignore-case --word-regexp --count --exclude="sys*"
grep $opts bytes *.log
히스토리 사용, 별명 사용, 함수 사용과 같은 여러 가지 대안이 있기 때문에 내가 생각할 수있는 명확한 유스 케이스는 없습니다. 다른 프로그램 간에는 복잡한 옵션 공유가 거의 없으므로 대화식 쉘을위한 임시 솔루션의 경우 앨리어싱이 더 나은 방법으로 보입니다.
alias cgrep='grep --ignore-case --word-regexp --count --exclude="sys*"'
cgrep bytes *.log
샘플
VAR=rsync -avz --{partial,stats,delete,exclude=".*"}
과제는 첫 번째 공백에서 endet이기 때문에 작동하지 않습니다. 공백을 숨겨야합니다.
VAR='rsync -avz --{partial,stats,delete,exclude=".*"}'
--delete 옵션을 사용하여 테스트하기에 매우 위험한 것은 아닌가요? 옵션에는 ","및 작은 따옴표가 다시 포함될 수 있으므로 마스킹이 곧 어려워 질 수 있습니다. 나는 별명을 찾거나 역사에 의존합니다.
별칭은 ~ / .bashrc 파일에 저장하여 여러 세션에서 계속 사용할 수 있습니다. 함수는 bashrc에도 저장할 수 있지만 매개 변수를 처리하려는 경우 함수로 전달하여 평가할 함수 만 필요합니다.