说,我有一个用这行调用的脚本:
./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile
Run Code Online (Sandbox Code Playgroud)
或者这个:
./myscript -v -f -d -o /fizz/someOtherFile ./foo/bar/someFile
Run Code Online (Sandbox Code Playgroud)
什么是分析这使得在每一种情况下(或两者的组合)的接受的方式$v,$f以及 $d将全部设置为true和$outFile将等于/fizz/someOtherFile?
我正在使用bash脚本,我想执行一个函数来打印返回值:
function fun1(){
return 34
}
function fun2(){
local res=$(fun1)
echo $res
}
Run Code Online (Sandbox Code Playgroud)
当我执行时fun2,它不会打印"34".为什么会这样?
如何将数组作为参数传递给bash函数?
注意:在Stack Overflow上没有找到答案后,我自己发布了一些粗略的解决方案.它只允许传递一个数组,它是参数列表的最后一个元素.实际上,它根本没有传递数组,而是传递了它的元素列表,这些元素通过called_function()重新组合成一个数组,但它对我有用.如果有人知道更好的方式,请随时在此处添加.
我想从shell脚本中调用的函数返回值.也许我错过了语法.我尝试使用全局变量.但这也行不通.代码是:
lockdir="somedir"
test() {
retval=""
if mkdir "$lockdir"
then # Directory did not exist, but it was created successfully
echo >&2 "successfully acquired lock: $lockdir"
retval="true"
else
echo >&2 "cannot acquire lock, giving up on $lockdir"
retval="false"
fi
return retval
}
retval=test()
if [ "$retval" == "true" ]
then
echo "directory not created"
else
echo "directory already created"
fi
Run Code Online (Sandbox Code Playgroud) adb uninstall <package name> 连接1个设备时有效.
如何为5台以上连接的设备进行此项工作?
我正在尝试为useradd命令创建简单的函数,并快速提高我糟糕的shell编程技巧.
useradd -m -g [initial_group] -G [additional_groups] -s [login_shell] [username]
Run Code Online (Sandbox Code Playgroud)
现在我有点不确定如何使用可选参数.经过一些谷歌搜索,我认为可能有一个处理,只需要玩代码.
我不确定的一件事是逻辑,我很好奇你们将如何写这个.我相信它会比我可以破解的更好.
以下是我将尝试设置我的函数参数的方法,对于登录shell和初始组,我将使它们具有通用默认值.
arg1 - userName, required
arg2 - loginShell, optional (default: /bin/bash)
arg3 - initGroup, optional (default: users)
arg4 - otherGroups, optional (default: none)
Run Code Online (Sandbox Code Playgroud)
这是关于我如何构建这个问题的一些蹩脚的伪代码.
function addUser( userName, loginShell, initGroup, otherGroups){
// Not how I would go about this but you should get the point
string bashCmd = "useradd -m -g ";
// Adding the initial user group
if(initGroup == null){
bashCmd += "users";
} else {
bashCmd += …Run Code Online (Sandbox Code Playgroud) 我正在使用基本的 shell 脚本,并且想知道如果可能的话如何执行以下操作
我已经创建了一个带有函数的基本脚本,当我使用名字和姓氏等变量键入主命令时,我想调用它
源./test.sh; 谈论$约翰$史密斯
function talk($firstName, $lastName)
{
echo "hi! ${firstName} ${lastName}"
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法让它工作,不知道哪里出了问题,我尝试阅读但感到困惑
我正在尝试创建以某种颜色打印绑定到变量的消息的函数。消息变量作为该函数的参数传递。问题是我只得到第一个空格之前的文本(只有消息的第一个单词)。我的脚本如下所示:
#!/usr/bash
lbGREEN='\e[1;92m'
NC='\e[0m'
normalMessage="Everything fine"
echo_message() {
echo -e ${lbGREEN}$1${NC}
}
echo_message $normalMessage
Run Code Online (Sandbox Code Playgroud)
我的输出是:
Everything
Run Code Online (Sandbox Code Playgroud)