Shell-Script
/etc/rc.local 中是否可以有條件?
是否可以有條件 inside
/etc/rc.local
?我檢查了許多問答,大多數人建議chmod +x
在上面執行,但我的問題不同。它實際上在沒有條件的情況下對我有用,但不是。#!/bin/sh if [[ -e /usr/src/an-existing-file ]] then echo "seen" >> /etc/rclocalmadethis fi
這是我在執行時看到的奇怪錯誤
systemctl status rc-local.service
:rc.local[481]: /etc/rc.local: 3: /etc/rc.local: [[: not found
這是我
rc.local
在完全相同的位置ls -lah /etc/
:-rwxr-xr-x 1 root root 292 Sep 19 09:13 rc.local
我使用的是 Debian 10 標準版。
該
[[ ... ]]
語法對/bin/sh
. 嘗試:if [ -e /usr/src/an-existing-file ] then echo "seen" >> /etc/rclocalmadethis fi
請注意,有時它會起作用,因為
/bin/sh -> /bin/bash
或其他一些支持該語法的 shell,但您不能依賴這種情況(如您在此處看到的)。您可以執行
ls -l /bin/sh
以了解此資訊,例如:lrwxrwxrwx 1 root root 4 Jul 18 2019 /bin/sh -> dash
[[
是 bash 中不可用的功能sh
:root@d4b4b6325f2a:/# type [[ [[ is a shell keyword root@d4b4b6325f2a:/# sh # type [[ [[: not found