複数のマシンに同じbash機能をインストールできるbashスクリプトを作成しようとしています。この特定の機能は、バックアップディレクトリのタイムスタンプを持つファイルのコピーを作成します。ここではbashスクリプトを使って変数を含むbash関数をインストールするには?
filebackup() { cp "${@}" ~/"filebackup/${@}_$(date +%Y-%m-%d_%H:%M:%S).bk"; }
は私のbashスクリプトです:私は、スクリプトを実行すると、
cat <<EOT >> ~/.bashrc
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# create a file backup in ~/filebackup/ with timestamp
filebackup() { cp "${@}" ~/"filebackup/${@}_$(date +%Y-%m-%d_%H:%M:%S).bk"; }
EOT
source ~/.bashrc
しかし、${@}
が欠落しており、 $(date +%Y-%m-%d_%H:%M:%S)
が評価されました。
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# create a file backup in ~/filebackup/ with timestamp
filebackup() { cp "" ~/"filebackup/_2017-01-05_12:07:56.bk"; }
どのように機能が文字通りファイルにコピーされていることを確認することができます:ここで.bashrc
ファイルに追加されたものでしょうか?
行1(「行6」ではなく)の「EOT」」を引用してください。 –
@thatotherguy * Easy Button *をプッシュします。 _簡単でした!_ありがとう! –
@DanFarrell私は同じような質問の検索でかなり徹底的だったと感じます...新しいユーザーとして、他の質問の用語は私がよく知っているものではないため、それを見つけられませんでした。 –