Затварянето на текста в кавички е доста стандартна практика на командния ред, особено когато се занимавате с файлове, които имат интервали в имената, но откъде знаете дали да използвате единични или двойни кавички? Нека да разгледаме разликата и когато трябва да използвате един срещу друг.
Общото правило е, че двойните котировки все още позволяват разширяване на променливите в кавичките, а единичните кавички не го правят. Продължавай да четеш.
Ако просто включвате няколко думи от текста, няма значение коя от тях ще използвате, тъй като и двете ще работят точно по същия начин. Например, тези две команди ще създадат директория с име Test Directory:
mkdir "Test Directory"
mkdir "Test Directory"
По-опитните типове вероятно ще отбележат, че бихте могли да използвате и mkdir Test \ Directory, ако искате.
Разликата между единични и двойни кавички става по-важна, когато се занимавате с променливи на командния ред - по подразбиране bash ще разшири променлива като $ тест в пълния низ. Първо, ще определим променливата:
test = "Това е тест"
Сега можете да използвате тази променлива на командния ред, като този, който трябва просто да изведе Това е тест към конзолата:
echo $ test
Ето защо разликата между двойни и единични кавички става по-ясна - когато използвате единични кавички, променливите няма да бъдат разширени. Например, ако изпълните тази команда:
echo '$ test'
Ще видите само "$ test" на командния ред, когато използвате единични кавички, но ще се извежда правилно, когато използвате двойни кавички:
Същото нещо работи, когато използвате "знака, за да разгънете команда в командния ред. Например, кажете, че искате да използвате хората с увреждания команда от друга команда - бихте използвали буквите, за да кажете на черупката да я разшири:
echo 'pwd' / тест
Ако сте били в домашната си папка, ще видите изход, който изглежда така:
/ Начало / маниак / тест
Кажете например, че сте в папка, която има интервал в пътя и искате да използвате командата ln, за да създадете символна връзка към файл в текущата директория. Обикновено трябва да укажете пълната пътека, когато използвате командата ln, затова е много по-лесно да използвате "pwd", за да запазите въвеждането.
Вижте какво се случва, когато се опитате да използвате командата, без да въвеждате в кавички:
ln -s 'pwd' / test / home / geek / свързано име
Вместо това трябва да заобиколите в кавички:
ln -s "" pwd "/ име на файла" / some / other / path "
За по-конкретен пример, нека приемем, че имаме папка структура като този пример, където всички имена на файлове имат интервали в тях:
Тъй като командата unzip не поддържа * да се стартира срещу всички файлове, вместо това трябва да използвате командата for. Ето какво става интересно:
за f в * .zip; разкомпресирайте $ f; приключи
Ами сега! Изглежда, че не се получи.
Това, което ще трябва да направим, е да използвате двойни кавички около променливата $ f, както следва:
за ф в * .zip; разкопайте "$ f";
Сега всеки път, когато командата за команда премине през цикъла, тя действително ще изпълни команда като тази:
unzip "test 1.zip"
Разбира се, че ще претърси и ще изпълни подобна команда за всеки файл в директорията.
Сега, след като разгледахме примерите, ще прегледаме бързо в случай, че сте пропуснали:
Двойни котировки
Единични котировки
И така завършва урока на цитатите. Използвайте ги разумно.