質問: シェルスクリプトから新しいセッションに引数を渡す 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ポートを開きません。問題は、scriptが、openportから渡された引数を使用する代わりに、sudo picocom /dev/tty"{2}"を実行する新しいセッションを起動することだと思います。引数を正しく渡す方法はありますか?
回答: 一重引用符で囲まれたものはすべて展開されないため、引用符からこのパラメーターを削除するだけです。sudo script -a -c 'sudo picocom /dev/tty'"${2}"' | ts "%y-%b-%d %h:%m:%s10"' /usr/local/logs/${1}.log shellがすべてのパーツのマージを処理します。