私はLinuxには比較的新しく、lean bash、ひいてはzshに挑戦しようとしています。とにかく、これは私が困惑している瞬間です:スクリプト内の 'history -s'は機能しません。
#!/bin/bash
history -s "a_string"
....は動作しません。私はアイデアにダースのバリエーションを試しましたが、何もそれをカットしません。 アイデア
私はLinuxには比較的新しく、lean bash、ひいてはzshに挑戦しようとしています。とにかく、これは私が困惑している瞬間です:スクリプト内の 'history -s'は機能しません。
#!/bin/bash
history -s "a_string"
....は動作しません。私はアイデアにダースのバリエーションを試しましたが、何もそれをカットしません。 アイデア
サブシェルはインタラクティブではないため、履歴を保存しません。または親シェルは履歴をリロードしません。この周り
典型的方法:
代わりスクリプト
alias doit='history -s "a_string"'
unalias doit
代わりスクリプト
function doit() {
echo "A function is a lot like a script"
history -s "but operates in a subshell only when a bash command does (piping)"
}
unset doit
source
スクリプトのシェル関数を使用エイリアスを使用して、サブシェルで実行する代わりに
source ./myscript.sh
. ./myscript.sh # equivalent shorthand for source
ありがとうございます。それで私はこの問題についていくつかの洞察を得ています。 –
さて、上記のすべてを試してみましたが、それらはすべて機能しますが、私にとって最も有用なのはスクリプトではなく関数を使うことです。私はこの2つの違いを初めて理解したと思います。 –
乾杯。私は書式を修正しました。あなたは実際に私が今意図したものを読むことができるかもしれません:) – sehe
$HISTFILE
と$HISTFILESIZE
このようなスクリプトを実行しているときに設定されていません。 $HISTFILE
を設定すると、好きなように履歴を読み書きすることができます。
何をしたいですか? –