【发布时间】:2022-01-27 09:20:51
【问题描述】:
我正在尝试检索名为 player.# 的文件的文件路径,其中数字是 1-20 之间的值。系统中的挂载点为/media/usb#,usb值范围为0-19。 usb 值不与播放器值匹配。之后,我需要将文件扩展名从player.# 存储到一个变量中,以便稍后在脚本中使用。
到目前为止,我已经尝试过:
for x in range {0..19}
do
DATA_DIR=/media/usb"$X"
PLAYER_FILE_PATH=`find -type f -path $DATA_DIR -name 'player.*' -printf '%f'`
PLAYER_FILE_ONLY='basename -- "$PLAYER_FILE_ONLY"`
PLAYER_NUMBER=`echo "${PLAYER_FILE_ONLY##*.}"'
done
我收到一个空白的返回语句,或者说路径不存在的错误。该文件确实存在,但我不知道为什么它不起作用。
我让它工作了。我没有意识到find 函数对'' 和"" 如此挑剔。另外,我对我需要的东西太具体了,所以将我的 find 函数更改为
PLAYER_FILE_PATH=`find $DATA_DIR -name "player.*"`
解决了问题!
【问题讨论】:
-
你使用哪个外壳?
-
@Cyrus 我目前正在使用 MobaXterm。我通过 SSH 连接到一个 RPi。
-
'player.*'和"player.*"是等价的。从一个换到另一个不会有什么不同。 -
最好post the solution as an answer 而不是将其编辑到您的问题中。