押したキーを無視する方法

押したキーを無視する方法

キーとパラメータを指定する必要があるbashスクリプトがあります。エイリアスを使用してコマンドを作成しました。

alias command="pushd /path; ./somescript.sh; popd"

スクリプト操作が完了したら、スクリプトが呼び出されたディレクトリに戻る必要があります。

しかし、エラーが発生します。

bash: popd: -o: invalid number
popd: using: popd [-n] [+N | -N]

私のシステムの言語は英語ではありません。オリジナルと違って見えてすみません。どうすればいいですか?

ベストアンサー1

これはうまくいきます:

$ alias foo="pushd /; ls -ld ./tmp; popd"
$ foo
/ ~
drwxrwxrwt 12 root root 4096 Dec 25 19:30 ./tmp/
~

ただし、エイリアスが指定された中間コマンドにパラメーターを渡す必要がある場合は、関数を使用する必要があります。それ以外の場合、パラメータはエイリアスの末尾に追加され、パラメータとして機能しますpopd

代わりにこれを行う:

something() {
    pushd /path > /dev/null
    ./somescript.sh "$@"
    popd > /dev/null
}
something -o blahblah

エイリアス/関数として使用される名前commandは、呼び出しに最適な名前ではない可能性があります。これは外部コマンドの呼び出しに使用されるシェル組み込みで、同じ名前の関数をスキップします。

おすすめ記事