创建 Bash 脚本来修改 tty 端口权限

创建 Bash 脚本来修改 tty 端口权限

我正在尝试创建一个 Bash 脚本,该脚本将在系统启动时运行并修改多个 ttyA 端口的权限。我不确定如何解决这个问题,想知道是否可以获得一些帮助。

我当前的代码是:

#!/bin/bash
TTYA=$ ls /dev/ttyA11

echo $TTYA

echo 'outside'
if [[ $$TTYA == 'ttyA11' ]]
then
  echo 'inside' 
  chmod g+rw /dev/ttyA*
fi

输出:

$ sudo ./rc.serial
/dev/ttyA11

outside

if不幸的是,由于该声明不正确,因此该方法不起作用。我不确定我是否正确地告诉我的变量检查ttyA11.

答案1

您的脚本有许多问题需要注意。

TTYA=$ ls /dev/ttyA11

不确定您要在这里完成什么,但如果您这样做TTYA=$(ls /dev/ttyA11)(请注意将命令的输出分配给变量的正确语法),TTYA则将包含/dev/ttyA11(如果该设备存在)。

echo $TTYA

您可能应该在此处添加引号,如echo "$TTYA"

echo 'outside'
if [[ $$TTYA == 'ttyA11' ]]

$$将扩展为正在运行的 shell 的 PID。因此,if 语句将始终为假。如果使用$TTYA(单美元),该语句也将是错误的,因为设备名称前面TTYA有一个。/dev/

then
  echo 'inside' 
  chmod g+rw /dev/ttyA*
fi

剧本的逻辑很奇怪;看来您想要创建/dev/ttyA*group-rw(如果/dev/ttyA11存在)。但在那种情况下,会

if [ -e  /dev/ttyA11 ] ; then
   chmod g+rw /dev/ttyA*
fi

更有逻辑性?

答案2

尝试这个:

TTYA='ls /dev/ttyA11'

eval $TTYA

echo $TTYA

echo "outside"

if [ $TTYA == 'ttyA11' ]

then
  
 echo "inside"
  
 chmod g+rw /dev/ttyA*

fi

相关内容