相关疑难解决方法(0)

如何在Bash中连接字符串变量

在PHP中,字符串连接在一起如下:

$foo = "Hello";
$foo .= " World";
Run Code Online (Sandbox Code Playgroud)

在这里,$foo成为"Hello World".

在Bash中如何实现?

syntax bash shell concat string-concatenation

2624
推荐指数
25
解决办法
343万
查看次数

从文件路径获取文件目录路径

在Bash中,如果VAR="/home/me/mydir/file.c",我该如何获得"/home/me/mydir"

bash

357
推荐指数
5
解决办法
37万
查看次数

Linux环境变量名中允许的字符

Linux环境变量名称中允许哪些字符?我粗略地搜索手册页和网页只会产生有关如何使用变量的信息,但不会产生允许使用哪些名称的信息.

我有一个Java程序,需要一个包含点的已定义环境变量,如com.example.fancyproperty.使用Windows我可以设置该变量,但我没有运气在linux中设置它(在SuSE和Ubuntu中尝试过).这个变量名是否允许?

linux syntax environment-variables

133
推荐指数
6
解决办法
7万
查看次数

如何创建pylintrc文件

我正在运行linux.我可以执行类似的操作pylint --generate-rcfile > .pylintrc,然后对生成的.pylintrc文件进行更改以覆盖默认设置吗?如果是这样,它应该在我的~/目录中,还是应该放在.pylint.d中?

pylint

111
推荐指数
3
解决办法
6万
查看次数

Jenkins:无法在管道阶段定义变量

我正在尝试创建一个声明性的Jenkins管道脚本,但是遇到了简单变量声明的问题.

这是我的脚本:

pipeline {
   agent none
   stages {
       stage("first") {
           def foo = "foo" // fails with "WorkflowScript: 5: Expected a step @ line 5, column 13."
           sh "echo ${foo}"
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 5: Expected a step @ line 5, column 13.
           def foo = "foo"
           ^
Run Code Online (Sandbox Code Playgroud)

我在Jenkins 2.7.4和Pipeline 2.4上.

groovy jenkins jenkins-pipeline

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

gitlab-ci SSH 密钥格式无效

我想使用 gitlab-ci 运行部署脚本,但步骤 ssh-add$SSH_PRIVATE_KEY返回错误:

echo "$SSH_PRIVATE_KEY" | ssh-add -
Error loading key "(stdin)": invalid format
Run Code Online (Sandbox Code Playgroud)

你可以看到我的.gitlab-ci.yml

deploy:
  image: node:9.11.1-alpine
  stage: deploy
  before_script:
    # Install ssh-agent if not already installed, it is required by Docker.
    # (change apt-get to yum if you use a CentOS-based image)
    - 'which ssh-agent || ( apk add --update openssh )'

    # Add bash
    - apk add --update bash

    # Add git
    - apk add --update git

    # Run ssh-agent (inside the …
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci

31
推荐指数
8
解决办法
2万
查看次数

花括号中的变量扩展

这是代码

a=''
b=john
c=${a-$b}
echo $c
Run Code Online (Sandbox Code Playgroud)

并且输出是空行

对于第一个变量未初始化的类似代码

b1=doe
c1=${a1-$b1}
echo $c1
Run Code Online (Sandbox Code Playgroud)

输出是

doe
Run Code Online (Sandbox Code Playgroud)

我不明白bash如何处理扩展导致不同结果的变量.

bash

18
推荐指数
1
解决办法
8290
查看次数

为什么Pycharm会在.sh bash脚本中对"简单变量用法"发出警告?

在Pycharm中,当我们使用变量eg时$privateKey,我们得到警告Simple变量用法如下面的快照,并建议我们转向语法${privateKey}

我的问题是为什么我们得到这样的警告?使用这样的简单变量有什么风险?

在此输入图像描述

点击时 more

在此输入图像描述

bash pycharm

9
推荐指数
1
解决办法
4068
查看次数

Bash $1 和 ${1} 之间有什么区别

我看到一些 bash 脚本使用$1, $2, ... 来访问在命令行上传递的参数,而一些脚本使用${1}, ${2}, ... 。这两种语法有什么区别?

bash

7
推荐指数
0
解决办法
2466
查看次数

Jenkins 项目中 ${my_variable} 和 $my_variable 之间的区别

在 Jenkins 项目中使用变量时,这之间有区别吗:

node index.js ${arg}

和这个:

node index.js $arg

其中 arg 是项目的参数。

更新: 有趣的是,它不是 Jenkins 特定的。

我认为这个问题应该保留,因为其他人可能会认为这与詹金斯有关。

bash shell jenkins

6
推荐指数
1
解决办法
2297
查看次数

将变量插入sh脚本命令

#!/bin/sh -f

set proj_dir="OutputDir"
for projname in lib proj1 proj2
do
    mv ./scripts/$projname_BYTECODE ./$proj_dir/scripts/$projname
done
Run Code Online (Sandbox Code Playgroud)

一个非常简单的例子,说明对我不起作用的情况。$ projname_BYTECODE被解释为变量名,但_BYTECODE实际上是文件夹名的一部分。有什么建议吗?

shell sh

5
推荐指数
1
解决办法
71
查看次数

从shell脚本中的属性文件中读取数据

我正在编写一个shell脚本,它从属性文件中读取数据并将其存储到shell脚本中的本地变量中.问题是当我试图从文件中读取多个属性并形成一个字符串时,它已经过了写

#!/bin/bash
. /opt/oracle/scripts/user.properties

echo $username
echo $password
echo $service_name

conn=$username$password$service_name
echo $conn
Run Code Online (Sandbox Code Playgroud)

username = xxxx password = yyyy和service_name = zzzz的值我希望输出为

xxxxyyyyzzzz 
Run Code Online (Sandbox Code Playgroud)

但而不是我得到的输出

zzzz
Run Code Online (Sandbox Code Playgroud)

请告诉我我在哪里做错了?

linux shell properties-file

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

如何在下一个单词之前使用没有空格的变量?

我有一个简单的bash脚本,如下所示:

RED=$(tput setaf 1)
echo "$REDERROR - ..."
Run Code Online (Sandbox Code Playgroud)

我希望它以ERROR红色打印.

如果我将我的代码更改为:

RED=$(tput setaf 1)
echo "$RED ERROR - ..."
Run Code Online (Sandbox Code Playgroud)

ERROR以红色打印,但具有领先的空间.

那么我怎样才能消除那个领先的空间并$RED在它之前仍然引用我的变量呢?

linux bash shell

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