たまに使うコマンドを入力する私のコードを確認してください。
$ type squared
squared is a function
squared ()
{
local t=$(($1*$1));
echo $t
}
組み込み関数を使用して同じことを実行できます。
$ type __expand_tilde_by_ref
__expand_tilde_by_ref is a function
__expand_tilde_by_ref ()
{
if [[ ${!1-} == \~* ]]; then
eval $1="$(printf ~%q "${!1#\~}")";
fi
}
しかし、このコマンドをこのスクリプトに入れると:
$ cat testit.sh
#!/bin/bash
source ~/bin/all-my-functions.sh
type squared
type __expand_tilde_by_ref
そして実行してください:
$ ./testit.sh
私は得る:
squared is a function
squared ()
{
local t=$(($1*$1));
echo $t
}
./testit.sh: line 4: type: __expand_tilde_by_ref: not found
組み込みコマンドを認識しません。なぜ?
タイプを確認しましたが、エイリアスではありません。
$ type -t type
builtin
ベストアンサー1
__expand_tilde_by_ref
/etc/bash_completion
(実際には)で定義されている可能性があります/usr/share/bash-completion/bash_completion
。あなたのものを見ると、スクリプトファイルではなく~/.bashrc
インタラクティブシェルの場合にのみ含める必要があるいくつかの行があります。/etc/bash_completion