我正在尝试在恢复模式期间在 Mac 上使用 bash 脚本移动一些文件。启动恢复后,我可以通过在终端中手动输入命令来成功移动文件。然而,一个目标是记录该过程并使其可移植,因此需要一个脚本。当我尝试mv
从脚本运行命令时,出现错误No such file or directory
。我已确认当我手动输入文件路径时该命令可以正确执行,但脚本仍然出错。
我尝试过使用双引号 ( "
) 和美元符号 ( $
)、美元符号 ( $
) 和大括号 ( {}
) 以及其他一些组合来进行变量评估。它们都因相同的错误而失败。我还尝试过在 src 上使用尾随斜杠、*
在 src 上使用通配符 ( ) 以及在 src 和 dest 上使用尾随斜杠。我完全被难住了。这可能是 MacOS 恢复模式特有的,但既然提示符宣布-bash-3.2
,这肯定是 bash 3.2 shell 吗?
请帮忙 - 即使我们的高级开发人员也被这个问题难住了......
它可能与不正确的解析有关吗?我注意到/*
目的地的末尾有一个,但我没有指定......
脚本是:
#! /bin/bash
#_# Setup
echo 'Setting up variables'
SYSDIR='/Volumes/Macintosh\ HD/System'
EXTDIR='Library/Extensions'
USERDIR='/Volumes/Macintosh\ HD/Users/admin'
#_# Bluetooth
echo 'Mitigating Bluetooth'
BLUE='IOBluetoothFamily.kext'
mkdir -p "$USERDIR/delete_me/$BLUE"
mv "$SYSDIR/$EXTDIR/$BLUE"/* "$USERDIR/delete_me/$BLUE"
echo '*Verify:* System Preferences/Bluetooth should display an error indicating bluetooth is not available.'
输出是:
-bash-3.2# ./bluetooth.sh
Setting up variables
Mitigating Bluetooth
mv: rename /Volumes/Macintosh\ HD/System/Library/Extensions/IOBluetoothFamily.kext/* to /Volumes/Macintosh\ HD/Users/admin/delete_me/IOBluetoothFamily.kext/*: No such file or directory
*Verify:* System Preferences/Bluetooth should display an error indicating bluetooth is not available.
-bash-3.2#