私のコードは次のとおりです.bashrc
。
c() { cd "$@" && ls -a ; }
alias cdd="c ~/Downloads"
alias r=". ~/.bashrc"
新しい端末をロードすると、cdd
コマンドを実行するまで機能しませんr
。しかし、そうした後、私は期待通りに働いた。なぜこれですか?
私は尋ねた同じ質問数ヶ月前にStack Overflowにいましたが、1回の回答でも正常に動作するソリューションを提供できませんでした。私のドットファイルへのリンクは次のとおりです。それが何の役に立つなら。
編集する type -a c cdd r
生産する:
c is aliased to `clear'
c is a function
c ()
{
cd "$@" && ls --color=auto -a
}
cdd is aliased to `c ~/Downloads'
r is aliased to `. ~/.bashrc'
この情報に基づいてc
機能を変更してd
機能します。しかし、私は(すでにしたように)Clear関数をcにマップしない方法はありますかalias cs='printf "\033c"'
?周りを見回しましたが、.bashrc
「Clear」という単語を含むアイテムが見つかりませんでした。
ベストアンサー1
c
エイリアスでclear
あるが独自のシェル初期化ファイルではない場合は、以下のシステム全体の初期化ファイルで実行される可能性が高くなります/etc
。たとえば、どのファイルが使用されているかを確認してください/etc/bash.bashrc
(またはマニュアルを参照してください。これはビルド方法bash
によってシステムによって異なる場合があります)。bash
c
エイリアスを指定するたびに、関数として定義する前にエイリアスを解放clear
できます。c
unalias c
$HOME
代わりに使用を検討することもできます~
。これは$HOME
より説明的であり(エイリアスの一部であり、実際に入力する必要がないため、何も「失われない」)、変数として機能するためです。実は~
そうではありません。バラより二重引用符の中でチルダ(〜)が拡張されないのはなぜですか?