我正在编写一个小型 bash 脚本,它本质上只会做两件事。同时执行两个更新命令,并列出按键绑定。例如,以同样的方式,作为变量chmod +x
也可以工作。using +x
我希望的方式是,如果我输入bash filename.sh -Y
,我将获得所需的按键绑定,如果我替换-Y
为-X
,我将运行两个更新命令。我该怎么做?
编辑;我忘了提及这一点,但老实说,变量中是否有连字符并不重要。我的帖子标题的意思是,如何使用-Y
inbash filename.sh -Y
而无需先按 Enter 键?这是我当前正在使用的脚本。
#!/bin/sh
read var
if [ var == upd ]
then
sudo pacman -Syyu; yay -Syu
fi
upd
当我在运行后按 Enter 键输入时,效果非常好bash filename.sh
。我如何获得相同的输入bash filename.sh upd
?
答案1
您应该使用命令行参数变量$1
、$2
、$3
等$1
自动设置为命令行上命令后的第一个单词。$2
是第二个词。$3
是第三个,等等。您还可以使用变量$#
来查看是否有参数,该变量包含命令行上的参数数量。
所以你的脚本将是:
#!/bin/bash
if [ $# -gt 0 ]; then
var="$1"
else
read var
fi
if [ "$var" == upd ]; then
sudo pacman -Syyu; yay -Syu
fi
注意:您应该始终在任何可能包含空格的变量两边加上引号,特别是当该变量可能来自用户输入时。