ファイルの場所を監視するスクリプトがあり、ファイルがそのファイルの場所にコピーされるシナリオがあります /home/matt/thefile
。
place myfile.txt
これにより、/home/matt/thefile
上書きするエイリアスが必要になりますmyfile.txt
。
答え1
機能がより適切になります。
Bourneのようなシェルから:
place() { cp -- "$1" /home/matt/thefile; }
bash
yash
以外のシェルでは、posh
これを次のように単純化できます。
place() cp -- "$1" /home/matt/thefile
存在するfish
:
function place
cp -- $argv[1] /home/matt/thefile
end
存在するrc
/ es
:
fn place {
cp -- $1 /home/matt/the/file
}
これは、これらのシェルに機能がないため、(t)csh
anを使用する必要があるためです(これが最初にエイリアスが導入された理由です)。履歴置換を使用して、特定のパラメータをエイリアスに渡すことを許可できます。alias
csh
(t)csh
alias place 'cp -- \!:1 /home/matt/the/file'
呼び出されると、次の場所にplace myfile.txt
コピーされます。myfile.txt
~/thefile
ユーザーのシェルに関係なく機能したい場合は、シェルカスタムファイルにシェル固有の機能/エイリアスを追加するのではなく、ディレクトリのコマンド検索パスに追加するスクリプトを作成できます。それは次のとおりです。
#! /bin/sh -
exec cp -- "${1?Please give the file to copy as argument}" /home/matt/thefile