Shell-Script

創建 Bash 腳本以修改 tty 埠權限

  • October 12, 2020

我正在嘗試創建一個將在系統啟動時執行並修改許多 ttyA 埠的權限的 Bash 腳本。我不確定如何解決這個問題,並且想知道是否可以得到一些幫助。

我目前的程式碼是:

#!/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.

您的腳本存在許多需要注意的問題。

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

更有邏輯?

引用自:https://unix.stackexchange.com/questions/614107