![ローカライズされたCLIでコマンドを実行するためのBashスクリプト[閉じる]](https://linux33.com/image/126840/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%A9%E3%82%A4%E3%82%BA%E3%81%95%E3%82%8C%E3%81%9FCLI%E3%81%A7%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AEBash%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
ローカルスイッチCLIにアクセスし、単純な「showconfigure」を実行するコマンドを実行しようとしています。スクリプトはログインしますが、何もしません。私はこれがサブターミナルにログインするとコマンドが解釈されないためだと思います。どんなアイデアがありますか?
$a1 = "show config"
exec cli
sleep 2
exec $a1
exec exit
答え1
その後、exec cli
シェルスクリプトが次の行の実行に戻らず、シェルプロセスが新しいプロセスに置き換えられたsleep 2
ため、もう存在しません。exec
cli
私はあなたがその効果を本当に望まないでexec
それを取り除かなければならないと思います。
何をしたいのかわかりませんが、 でshow config
コマンドを実行すると仮定し、cli
入力にコマンドを作成してみてください。
printf "show config" | cli
似ているが非常に難しい場合は、次を参照してください。expect