Инструменты пользователя

Инструменты сайта


service:bash

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:bash [23.08.2024 05:42] viacheslavservice:bash [30.10.2024 21:24] (текущий) – [Добавление строки $PATH в файл без дублей] viacheslav
Строка 36: Строка 36:
 IFS="$oldIFS" IFS="$oldIFS"
 </code> </code>
-https://bash.cyberciti.biz/guide/$IFS+ 
 +Пример с ''read'' 
 +<code bash> 
 +# Содержимое файла /tmp/domains.txt 
 +cyberciti.biz|202.54.1.1|/home/httpd|ftpcbzuser 
 +nixcraft.com|202.54.1.2|/home/httpd|ftpnixuser 
 + 
 +# Скрипт 
 +file=/tmp/domains.txt 
 +IFS='|' 
 +while read -r domain ip webroot ftpusername 
 +do 
 +        printf "*** Adding %s to httpd.conf...\n" "$domain" 
 +        printf "Setting virtual host using %s ip...\n" "$ip" 
 +        printf "DocumentRoot is set to %s\n" "$webroot" 
 +        printf "Adding ftp access for %s using %s ftp account...\n\n" "$domain" "$ftpusername" 
 +  
 +done < "$file" 
 +</code> 
 + 
 +Есть другие варианты, использующие свой разделитель: 
 +<code bash> 
 +# Search for the user named vivek and print home directory 
 +# The -F':' set ':' for the input field separator and value of $IFS always ignored  
 +awk -F':' '/vivek/{ print $6}' /etc/passwd 
 + 
 +# Search for the user named vivek and print home directory 
 +# The -d':' set ':' for the input field separator and value of $IFS always ignored  
 +grep -w "^vivek" /etc/passwd | cut -d':' -f6 
 +</code> 
 +[[https://bash.cyberciti.biz/guide/$IFS]] 
 + 
 +==== Добавление строки $PATH в файл без дублей ==== 
 +FIXME Недоделано 
 + 
 +Задача была добавить некую строку к ''PATH'' и записать это в ''.bashrc'', но сделать так, чтобы эта строка не дублировалась. Ниже черновик. 
 +<code bash> 
 +if grep -q ^PATH var.txt 
 +then 
 +  if [[ $(grep ^PATH var.txt) == *"/var/www/html"* ]] 
 +  then 
 +    grep ^PATH var.txt |sed 's#^PATH=##' |tr ':' '\n' |sort -u |tr '\n' ':' |sed 's#^#PATH=#; s#:$##' 
 +  else 
 +    sed -i "s#^PATH=.*#PATH=$PATH:/var/www/html#" var.txt 
 +  fi 
 +else 
 +echo "PATH=$PATH:/var/www/html" >> var.txt 
 +fi 
 +</code>
service/bash.1724391742.txt.gz · Последнее изменение: 23.08.2024 05:42 — viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki