実行可能なスクリプトの束を.commandディレクトリ(また実行可能)に入れて、.bash_profileからそのディレクトリをインポートしたいと思います。可能ですか?ファイルで作業できます。ただし、2番目のファイルを追加すると、2番目のファイルのコマンドはシェルでは使用できません。
私.bashプロフィール
source ~/.commands/*
私の.commandsフォルダ
-rwxr-xr-x 1 christopherreece staff 108 Dec 14 08:55 server_utils.sh
-rwxr-xr-x 1 christopherreece staff 23 Dec 14 09:04 short
短い内容
echo 'a short program'
server_utils.sh 競争
function upfile {
scp $1 root@myserveripadress:~/
}
シェルの入出力。
$ hello
hello
$ short
-bash: short: command not found
答え1
1つだけではそうすることはできませんsource
。最初の引数はファイル名として扱われ、他の引数はソーススクリプトの場所引数として表示されます$1
。 ....$2
$ cat test.src
echo hello $1
$ source test.src there
hello there
ただし、ループを使用するとこれを行うことができます。
for f in ~/commands/*.src; do
source "$f"
done
(しかし、バックアップファイルの後に. が付くエディタを使用している場合は、~
このような内容に特定の拡張子を持つファイルのみを含めると便利です。これにより、バックアップコピーが誤ってアクティブになりません。)
echo
ただし、一般的なコマンド(上記のコマンドやコマンドなど)を含むソーススクリプトがある場合、スクリプトのshort
実行時にコマンドが実行されますsource
。調達シェルでは何の機能も生成しません。
$ cat test2.src
echo "shows when sourced"
func() {
echo "shows when function used"
}
$ source test2.src
shows when sourced
$ func
shows when function used
実行可能なスクリプト(コマンドで名前を付けるときに実行される種類)を使用するには、どこかに置いてPATH
(この場合は推奨~/bin
)、実行権限を与えてから、適切なハッシュバンクスクリプト(#!/bin/sh
または#!/bin/bash
その他)を置きます。