相关疑难解决方法(0)

如何在Bash中解析命令行参数?

说,我有一个用这行调用的脚本:

./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 scripting command-line arguments getopts

1764
推荐指数
24
解决办法
136万
查看次数

Bash函数中的返回值

我正在使用bash脚本,我想执行一个函数来打印返回值:

function fun1(){
  return 34
}
function fun2(){
  local res=$(fun1)
  echo $res
}
Run Code Online (Sandbox Code Playgroud)

当我执行时fun2,它不会打印"34".为什么会这样?

bash function return-value

267
推荐指数
9
解决办法
33万
查看次数

在bash中将数组作为参数传递

如何将数组作为参数传递给bash函数?

注意:在Stack Overflow上没有找到答案后,我自己发布了一些粗略的解决方案.它只允许传递一个数组,它是参数列表的最后一个元素.实际上,它根本没有传递数组,而是传递了它的元素列表,这些元素通过called_function()重新组合成一个数组,但它对我有用.如果有人知道更好的方式,请随时在此处添加.

arrays bash

181
推荐指数
6
解决办法
16万
查看次数

从shell脚本中的被调用函数返回值

我想从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)

shell return-value

114
推荐指数
4
解决办法
32万
查看次数

如何使用adb从多个连接的设备卸载APK?

adb uninstall <package name> 连接1个设备时有效.

如何为5台以上连接的设备进行此项工作?

java eclipse shell android adb

12
推荐指数
2
解决办法
1万
查看次数

Bash - 具有可选参数和缺少逻辑的函数

我正在尝试为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)

bash

7
推荐指数
2
解决办法
9687
查看次数

shell脚本函数参数/参数

我正在使用基本的 shell 脚本,并且想知道如果可能的话如何执行以下操作

我已经创建了一个带有函数的基本脚本,当我使用名字和姓氏等变量键入主命令时,我想调用它

源./test.sh; 谈论$约翰$史密斯

  function talk($firstName, $lastName)
{
        echo "hi! ${firstName} ${lastName}"
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法让它工作,不知道哪里出了问题,我尝试阅读但感到困惑

shell function sh

4
推荐指数
1
解决办法
1万
查看次数

为什么这个 bash 函数只打印整个字符串的第一个单词?

我正在尝试创建以某种颜色打印绑定到变量的消息的函数。消息变量作为该函数的参数传递。问题是我只得到第一个空格之前的文本(只有消息的第一个单词)。我的脚本如下所示:

#!/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)

linux bash shell scripting

4
推荐指数
1
解决办法
2073
查看次数