引数が最後に追加されるのではなく、中央に挿入されるエイリアスを定義しようとしています。
私はそれを次のように定義してみました:
alias grep_logs="grep $1 */log/*.log"
ここで、$ 1はgrep_logsの最初の引数であり、次のようになります。
grep_logs foo
次のコマンドを実行します。
grep foo */log/*.log
ただし、代わりに次のコマンドを実行します。
grep foo */log/*.log foo
その結果、エラーが発生します。
grep: foo: No such file or directory
エイリアスを使用してこれを行うことは可能ですか、それとも関数を定義する必要がありますか?
〜/ .profileで関数を定義してみてください。
function greplogs(){
grep "$1" */logs/*.log
}
質問に答えるためだけに、関数ソリューションははるかにクリーンですが:
alias sstatus='bash -xc '\''Sudo service $0 status'\'''
alias sstart='bash -xc '\''Sudo service $0 start'\'''
alias sstop='bash -xc '\''Sudo service $0 stop'\'''
$sstatus cups
+ Sudo service cups status
Status of Common Unix Printing System: cupsd is running.
問題は、エイリアスが位置パラメータの概念をサポートしていないことです。もしそうなら、関数は必要ありません。そうです、関数はまさにこの目的のために作られているので、関数を使用してください。
探している答えは完全ではありませんが、最初の引数としてパターンを指定したくない場合は、-e
引数を使用してください
alias grep_logs="grep */log/*.log -e"
関数を使用して、エイリアスを作成してみてください。
function func_grep_logs {
grep $1 */log/*.log
}
その後
alias grep_logs="func_grep_logs"