it-swarm-ja.com

シェルスクリプトから新しいセッションに引数を渡す

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

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ポートを開きません。問題は、scriptが、openPortから渡された引数を使用する代わりに、Sudo picocom /dev/tty"{2}"を実行する新しいセッションを起動することだと思います。引数を正しく渡す方法はありますか?

1
pavel

一重引用符で囲まれたものはすべて展開されないため、引用符からこのパラメーターを削除するだけです。

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

Shellがすべてのパーツのマージを処理します。

2
jimmij