シェルスクリプトから新しいセッションにパラメータを渡す

シェルスクリプトから新しいセッションにパラメータを渡す

USBポートからファイルにシリアルデータを記録するスクリプトを作成しており、次のようにデータを記録するために使用していscriptます。picocom

sudo script -a -c 'sudo picocom /dev/ttyUSB0 | ts "%Y-%b-%d %H:%M:%S10"' /usr/local/logs/device1.log

うまく動作しています。今までopenPort呼び出せるようにスクリプトでラップしたいです。openPort device1 USB0

sudo script -a -c 'sudo picocom /dev/tty"${2}" | ts "%Y-%b-%d %H:%M:%S10"' /usr/local/logs/${1}.log

残念ながら、COMポートは開かれません。 fromを使用する代わりに、script実行する新しいセッションを開始することが問題のようです。引数を正しく渡す方法はありますか?sudo picocom /dev/tty"{2}"openPort

答え1

一重引用符内の内容はすべて拡張されないため、引用符からこのパラメータを削除してください。

sudo script -a -c 'sudo picocom /dev/tty'"${2}"' | ts "%Y-%b-%d %H:%M:%S10"' /usr/local/logs/${1}.log

Shellは、すべての部分を1つにまとめることを担当します。

関連情報