エポック時刻を日付に変換する機能があります。ここに定義があります
date1(){
date -d @$1
}
書きたいのですが。
$ date1 xxxyyy
ここで、xxxyyyは関数に渡すパラメーターであり、対応する日付を取得できます。どちらかに追加する必要があることを理解しています.bash_profile
、.profile
、または.bashrc
そしてそれを調達する:
$ source file
しかし、どのファイルに入れるかわかりません。現在、.profile
。しかし、それを実行するには、source .profile
毎回。
理想的には、コンピューターが環境変数のように起動したときに、それを使用可能にする必要があります。
man bash
から:
Bashが対話型ログインシェルとして、または--loginオプションを使用して非対話型シェルとして呼び出されると、ファイル/ etc/profileが存在する場合、そのファイルからコマンドを読み取り、実行します。そのファイルを読み取った後、〜/ .bash_profile、〜/ .bash_login、および〜/ .profileをこの順序で検索し、存在し、読み取り可能な最初のコマンドからコマンドを読み取って実行します。
つまり、~/.bash_profile
、~/.bash_login
、~/.profile
、のいずれか、または任意のファイルsource
dのいずれかに置くことができます。それらの。通常、~/.profile
は、~/.bashrc
をソースにします。これは、「ログインシェルに対して実行される個人用初期化ファイル」です。
これを有効にするには、新しいシェルを起動してexec $Shell
を実行するか、source ~/.bashrc
を実行します。
.profile
で関数を定義したら、export -f date1
を追加します。これにより、ログインシェルで使用する関数がエクスポートされます。
対話型シェルのカスタマイズは~/.bashrc
に組み込まれます。ログイン時に実行したいものは~/.profile
(または~/.bash_profile
に移動しますが、グラフィカルにログインするとロードされないことがよくあります)。
この関数定義を~/.bashrc
に入れます。
ログインシェルの場合、bashは.bashrc
をロードしないので、強制的にロードします:~/.bash_profile
を含む
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac
つまり、~/.profile
をロードし、シェルがインタラクティブな場合は~/.bashrc
もロードします。
。bashrcの代替 とそこにリンクされている投稿を参照してください。
cshとtcshはbashのような機能をサポートしていませんが、実行できます。
たとえば、これはテキストを印刷する簡単な関数です
alias print_hello_world 'eval echo "hello world"'
スクリプトに引数を渡す
repeate_after_me 'eval echo "$1"'
ifステートメントのように複数行のコードを実行するのは少し複雑ですが、ここに進みます。
alias X 'eval "if (\!:1 =~ 'yes') then \\
echo yes \\
else \\
echo no \\
endif"'
評価はまだ必要ですが、最も複雑な部分は\!:[x]
構文を使用して、コマンドラインから入力を取得します。
それはあなたを整理するのに十分なはずです。
typesetを使用すると、現在のすべての関数をbashrcにリダイレクトできます。
たとえば、オプションのパラメーターを指定したopenstackコマンドの関数をbashrcに追加する方法を次に示します。
urc() { . stackrc; set -x; openstack server list --all $1; set +x; }
typeset -f >> ~/.bashrc
今後のセッションのために保存され、次のように使用できます。
$ urc
または
$ urc --debug