たとえば、Bashスクリプトファイル(Bash関数ではない)でBashで変数を宣言するには、次の手順を実行し、スクリプトx=y
ファイルで変数を使用したら、次の手順を実行しますunset x
。
5分後に変数を1行に設定解除する方法(関数を使用せず)はありますか? 1つの可能なアプローチは次のとおりですx=y && echo "unset x" | at now + 5 minutes
。
この特別なケースでは、端末から直接スクリプトファイルを実行しました。コピーして貼り付けるそのコンテンツはGitHubからターミナルに流れます。これは次のものです購入私は仮定する」。
GitHubを使用していることを考えると、別のオプションは次のとおりです。オリジナル次のように別のシェルを使用してGitHubから直接スクリプトファイルを作成しますbash
が、この方法は不可論的ではないため、気に入りませんuser/repo/branch/path/file
。
wget -O - https://raw.githubusercontent.com/<username>/<repo>/<branch>/<path>/<file> | bash
ベストアンサー1
at
ジョブは他のコンテキストで実行され、現在のシェルには影響しないため使用できません。
しかし、私たちも同様のことができます。このコードは、私たちが捕捉してアクションを取ることができる警告信号をトリガーします。
#!/bin/bash
x=100
trap 'unset x' SIGALRM
mypid=$$
( /bin/sleep 3 ; kill -ALRM $mypid) &
for a in 1 2 3 4 5 6
do
echo Now x=$x
sleep 1
done
この例は、必要に応じて遅延を選択できる3秒しか使用しないソリューションを示しています。
実行中:
Now x=100
Now x=100
Now x=100
Now x=
Now x=
Now x=
1行で簡単に作成できます;
...