Ваш скрипт не будет работать для всех. Переменная, которую вы установили для дома для своего пользователя, будет неправильной для людей, у которых есть HOME место в другом месте от /home/user. Например, мое домашнее местоположение для моего личного пространства - /home/user/l/j/ljames.
Вместо того, чтобы указать путь к "file:///home/$USER/.wallpaper/1920x1080", вы должны корректно изменить его на "file:///$HOME/.wallpaper/1920x1080".
Ваш скрипт не будет работать для всех.
#!/bin/bash
cd ~/
rm -r ~/.wallpaper
mkdir .wallpaper
cd ~/.wallpaper
wget https://source.unsplash.com/random/1920x1080
# USER=$(whoami) This line isn't neccesary.)
path="file:///$HOME/.wallpaper/1920x1080"
echo $path
gsettings set org.gnome.desktop.background picture-uri "$path"
Более эффективным примером является:
#!/bin/bash
[ ! -d ~/.wallpaper ] && mkdir ~/.wallpaper
cd ~/.wallpaper
wget -O 1920x1080 https://source.unsplash.com/random/
path="file:///$HOME/.wallpaper/1920x1080"
rm ~/.cache/wallpaper/*
gsettings set org.gnome.desktop.background picture-uri "$path"
Более эффективным примером является:
Line #1: Create wallpaper directory if it doesn't exist.
Line #2: Move to the folder.
Line #3: Overwrite the current file with the new wallpaper.
Line #4: Set the pathname variable.
Line #5: Removed the Wallpaper cache for image change detection.
Line #6: Active the new wallpaper.
Это похоже на скрипт c-shell. Используйте
sudo apt-get install csh
, а затем попробуйте запустить скрипт в c-shell. Вы можете открыть c-shell, запустив csh из оболочки bash.
Это похоже на скрипт c-shell. Используйте
sudo apt-get install csh
, а затем попробуйте запустить скрипт в c-shell. Вы можете открыть c-shell, запустив csh из оболочки bash.
Это хорошая форма и уменьшает путаницу, чтобы запустить все сценарии оболочки, объявив оболочку, в которой они должны запускаться. Первая строка для оболочки Borne (то, что вы назвали «.sh») - «#!/bin/sh». Это помогает устранить всю путаницу в отношении оболочки, в которой каждая имеет нюансы в своем синтаксисе и структуре команд.
Для оболочки Borne команда if выглядит более похожей на это: if [$ rule = "deps"] ; затем # процесс, основанный на HOSTTYPE fi
Пара других предложений, они могут не быть проблемой здесь, но могут укусить вас со временем.
1- определить согласованное соглашение об именах имен, например все в верхнем регистре, чтобы вы могли легче читать код и идентифицировать переменные. 2- Используйте фигурные скобки для обозначения переменных, чтобы они не могли «запутаться». 3. При сравнении строк также помещайте свои переменные в кавычки.
Итак, давайте изменим первую строку из
if ($rule == "") set rule="all"
на
if [ "${rule}XXX" = "XXX" ]; rule="all"
Вьющиеся скобки защищают запутывание с XXX, этот синтаксис говорит, что значение переменной «rule» с «XXX» добавлено до конца. Итак, если результат равен только XXX, вы знаете, что переменная была пуста или null.
Для типа хоста вы можете попробовать добавить еще одну строку, например, для правила:
set HOSTTYPE=$2
[d8 ], а затем, когда вы запустите скрипт, добавьте второй параметр, в который вы вводите тип хоста, например [F6] Это хорошая форма и уменьшает путаницу, чтобы запустить все сценарии оболочки, объявив оболочку, в которой они должны запускаться. Первая строка для оболочки Borne (то, что вы назвали «.sh») - «#!/bin/sh
». Это помогает устранить всю путаницу в отношении оболочки, поскольку каждый имеет нюансы в своем синтаксисе и структуре команд.
Для оболочки Borne команда if
выглядит более похожей на это: if [$ rule = "deps"] ; затем # процесс на основе HOSTTYPE fi
Пара других предложений, они могут не быть проблемой здесь, но могут укусить вас со временем.
1- определить согласованное соглашение об именах имен, например все в верхнем регистре, чтобы вы могли легче читать код и идентифицировать переменные. 2- Используйте фигурные скобки для обозначения переменных, чтобы они не могли «запутаться». 3- При сравнении строк добавьте переменные в кавычки.
Итак, давайте изменим первую строку из
if ($rule == "") set rule="all"
на
if [ "${rule}XXX" = "XXX" ]; rule="all"
Кудрявый скобки защищают запутывание с XXX, этот синтаксис говорит, что значение переменной «rule» с «XXX» добавлено до конца. Итак, если результат равен только XXX, вы знаете, что переменная была пуста или null.
Для типа хоста вы можете попробовать добавить еще одну строку, например, для правила:
set HOSTTYPE=$2
, а затем, когда вы запустите скрипт, добавьте второй параметр, в который вы вводите тип хоста, например build.sh deps i386