Я пишу сценарий, который будет символизировать все мои dotfiles, связанные с bash, в домашний каталог. Я хочу, чтобы скрипт проверял, существуют ли имена файлов, чтобы я мог переименовать/переместить их.bash переменное имя файла с подчеркиванием непризнанным?
По какой-то причине не удается получить мою тестовую команду if
, чтобы распознать имена файлов, в которых есть символ подчеркивания.
При проверке файлов, которые уже существуют, этот сценарий:
#!/bin/bash
for name in bashrc bash_profile bash_aliases
do
filename=$HOME"/."$name
if [ -e "$filename" ]; then
echo "${filename} exists"
else
echo "${filename} doesn't exist"
fi
done
Выходы:
/home/xavier/.bashrc exists
/home/xavier/.bash_profile doesn't exist
/home/xavier/.bash_aliases doesn't exist
Что именно подчеркиванием, что является причиной такого поведения, и как это исправить?
Его работа для меня. Вы проверяли, что у вас есть эти файлы? – Ritesh
поместите переменную '$ HOME' внутри' '/." 'Так что это должно быть как' '$ HOME /." 'Оно должно работать правильно сейчас. –
Обратите внимание, что '-e' не удастся, если файл существует, но является сломанной символической ссылкой –