我将如何提高此脚本的效率?

尼古拉斯·阿达穆(Nicholas Adamou)

我正在编写一个脚本,该脚本将使用gnome-tweak-tool系统安装Numix主题。

我想确保如果已经安装了项目,则不要重新安装它们,因此我使用了which [name of item] > /dev/null

这是我当前的脚本:

function installNumix() {
    echo "Checking if Numix is installed ..."
    if ! which gnome-tweak-tool > /dev/null; then
        if ! which numix-gtk-theme > /dev/null; then
            if ! which numix-icon-theme-circle > /dev/null; then
                echo "Installing Numix ..."
                sudo add-apt-repository ppa:numix/ppa
                sudo apt-get update
                sudo apt-get install numix-gtk-theme numix-icon-theme-circle -y
                sudo apt-get install gnome-tweak-tool -y
                echo "Configuring Numix:"
                echo "===================================================================="
                echo "Please use the 'tweak-tool' to change your theme to 'Numix'."
                echo "[GTK+]: Numix."
                echo "[icons]: Numix-Circle."
                echo "===================================================================="
                gnome-tweak-tool
                echo "Numix has been manually configured."
                source ~/.profile
                changeBackground backgrounds/background.png
                changeProfilePicture $(whoami) profile_pictures/profile_picture.png
                echo "The Numix has been installed."
                sleep 5
            fi
        fi
    else
        echo "Numix has already been installed."
        sleep 5
    fi
}

我的.profile档案:

#Change desktop background f(x)
#Ex. changeBackground  /path/to/image.png
function changeBackground() {
    FILE="file://$(readlink -f "$1")"
    fileName="${FILE##*/}" # baseName + fileExtension

    echo "Changing desktop background to: '$fileName' ..."
    dconf write "/org/gnome/desktop/background/picture-uri" "'$FILE'"
    echo "Desktop background has been changed."
    sleep 5
}

#Change profile picture f(x)
#Ex. changeProfilePicture username /path/to/image.png
function changeProfilePicture() {
    FILE="$(readlink -f "$2")"
    fileName="${FILE##*/}" # baseName + fileExtension

    echo "Checking if 'imagemagick' is installed ..."
    if ! command brew ls --versions imagemagick >/dev/null 2>&1; then
        echo "Installing 'imagemagick' ..."
        brew install imagemagick -y
        echo "'Imagemagick' has been installed."
        sleep 5
    else
        echo "'Imagemagick' has already been installed."
        sleep 5
    fi

    echo "Changing profile picture to: '$fileName' ..."
    sudo mkdir -p '/var/lib/AccountsService/icons/'"$1"
    sudo convert "$2" -set filename:f '/var/lib/AccountsService/icons/'"$1/%t" -resize 96x96 '%[filename:f].png'
    echo "Profile picture has been changed."
    sleep 5
}
案件

gnome-tweak-tool您可以使用来在脚本中设置gtk和window-manager主题以及icon-theme,而不是让用户手动使用gsettings例如

gsettings set org.gnome.desktop.interface gtk-theme Numix
gsettings set org.gnome.desktop.wm.preferences theme Numix
gsettings set org.gnome.desktop.interface icon-theme Numix-Circle

顺便说一句,除非numix-gtk-themenumix-icon-theme-circle是PATH目录中某个位置的可执行文件,否则which在它们上运行将无法执行您想要的操作。

而是检查是否存在特定的文件或目录。例如

if [ ! -d /usr/share/themes/Numix ] ; then ... fi

我没有安装Numix主题,所以我不知道这是否是正确的目录-使用dpkg -L numix-gtk-themedpkg -L numix-icon-theme-circle查找要搜索的正确目录。

或者,不要费心检查软件包是否已安装。赶紧跑:

apt-get -y install numix-gtk-theme numix-icon-theme-circle gnome-tweak-tool

(可选地,将stdout和stderr重定向到/ dev / null)

如果已经安装了这些软件包的最新版本,则apt-get不会执行任何操作。否则,它将安装或升级它们。

最后,使用,sudo add-apt-repository -y ppa:numix/ppa这样它就不会提示用户。如果已添加存储库,则不会造成任何危害-它会注释掉/etc/sources.list.d/numix-ubuntu-ppa-yakkety.list文件中的先前条目,并将ppa添加到文件的开头。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何提高我的特里效率?

来自分类Dev

我将如何更改此脚本中的音量?(JavaScript)

来自分类Dev

如何提高此SQL语句的效率?

来自分类Dev

如何提高我的重定向代码的效率

来自分类Dev

我可以使用索引提高此请求的效率吗?

来自分类Dev

我将如何修改此脚本以递归转换所有文件?

来自分类Dev

我将如何提高效率(不要一遍又一遍地重复同一件事)?

来自分类Dev

我将如何完成此Java代码?

来自分类Dev

Javascript:我将如何简化此代码?

来自分类Dev

我将如何遍历此 API 数据

来自分类Dev

如何提高循环效率

来自分类Dev

如何提高循环效率

来自分类Dev

如何提高XSLT效率

来自分类Dev

如何提高算法的效率?

来自分类Dev

如何提高我的应用程序的增量更新效率

来自分类Dev

如何提高我的jquery / ajax / php调用的速度/效率?

来自分类Dev

有很多选择时如何提高我的pandas效率

来自分类Dev

有人可以帮助我提高此代码的效率吗?

来自分类Dev

如何提高该程序的效率?

来自分类Dev

如何提高内联函数效率?

来自分类Dev

如何提高多线程效率?

来自分类Dev

如何提高慢循环的效率

来自分类Dev

如何提高IsItAHoliday函数的效率?

来自分类Dev

如何提高AWK程序的效率

来自分类Dev

如何在不重复每年for循环的情况下提高此简单代码的效率?

来自分类Dev

我将如何重构此C代码以摆脱重复

来自分类Dev

我将如何在Rust中编写此C函数?

来自分类Dev

我将如何使用DP解决此问题?

来自分类Dev

我将如何重写此代码以使用Lambda