現在のシェルで次のコマンドを実行するか、そのコマンドを入力している状況を考えてください.bashrc
。
alias source='echo hi'
alias .='echo hi'
alias unalias='echo hi'
またはfunction source(){ echo hi; }
待ってください。
バイナリコマンドでは、次の絶対パスを使用できます。/bin/ls
しかし、現在のシェルでこれらのシェル組み込みコマンドを具体的に実行するには?
ベストアンサー1
Bashには次のコマンドがありますbuiltin
。
builtin: builtin [shell-builtin [arg ...]]
Execute shell builtins.
Execute SHELL-BUILTIN with arguments ARGs without performing command
lookup.
例えば
$ cat > hello.sh
echo hello
$ source() { echo x ; }
$ source hello.sh
x
$ builtin source hello.sh
hello
builtin
しかし、書き換えに邪魔になることはありません。
関数ではなくエイリアスを解決する別の方法は、単語(部分)を引用することです。
$ alias source="echo x"
$ source hello.sh
x hello.sh
$ \source hello.sh
hello