キーとパラメータを指定する必要がある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
は、呼び出しに最適な名前ではない可能性があります。これは外部コマンドの呼び出しに使用されるシェル組み込みで、同じ名前の関数をスキップします。