だから私は実験して_alias
を.bashrc
に作成しました。ただし、コマンドをテストすると、次のようになります。
[rkahil@netmon3 ~]$ menu
-bash: menu: command not found
これが.bashrc
ファイルにあるものです。
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias menu='./menuScript.sh'
alias vi='vim'
面白いのは、エイリアスvi
を作成したときに機能したことです。しかし、メニューにはありません。 UnixStackExchangeで以前の投稿を調べ、他の投稿をフォローしようとしましたが、役に立ちませんでした。他に誰か提案がありますか?
alias menu='bash ./menuScript.sh'
。現在Linuxマシンを使用していないため、自分でテストすることはできませんが、動作するはずです。エイリアスを呼び出すと、パスの処理方法がわからないため、最初にbash
を含める必要があります。
また、端末をリセットすると、変更後に役立ちます。
あなたがするとき
alias menu='./menuScript.sh'
「そのファイル」と言うエイリアスを作成しますが、実際にそれをどうするかは言いません。
ただし、
alias menu='source ./menuScript.sh'
または
alias menu='. ./menuScript.sh'
runそのファイルと言っています。
変更を行った後、〜/ .bashrcファイルを入手することを覚えていますか?変更は、コンピューターを再起動した後、または単にファイルを調達した後に.bashrcファイルに反映されるためです。
vim
で動作するのは、直接パスなしですでに呼び出し可能なプログラムであるためです。 vim
は既に1つなので、「これをプログラムとして実行してほしい」と明示的に言う必要はありません。コマンドvim
を受け取ったときに、ファイル/usr/bin/vi
または実際のプログラムがどこにあっても、OSにハードコードされています。
エイリアスには2つの問題があります
alias menu='./menuScript.sh'
エイリアスを呼び出すときは、特定のディレクトリにいる必要があります。 menuScript.sh
が存在しないディレクトリにいる場合、エイリアスの実行は失敗します。
エイリアスを定義するときに、menuScript.sh
スクリプトへの完全な絶対パスを指定した方がよいでしょう。
alias menu="$HOME/local/bin/menuScript.sh"
または類似。
他の人がすでに言ったように、エイリアスが失敗するもう1つの理由は、スクリプトが実行可能でないか、無効な#!
- lineがあることです。スクリプトが実行可能であることを確認してください
chmod +x menuScript.sh
スクリプトの最初の行は
#!/bin/bash
または、システム上のbash
(またはスクリプトが記述されたシェル)へのパスです。