将参数从 shell 脚本传递到新会话

将参数从 shell 脚本传递到新会话

我正在编写一个脚本来将串行数据从 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启动一个新的会话来执行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

壳牌将负责将所有部分合并在一起。

相关内容