相关疑难解决方法(0)

何时在shell变量周围包装引号?

有人能告诉我是否应该在shell脚本中包含变量的引号?

例如,以下是正确的:

xdg-open $URL 
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)

要么

xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)

如果是这样,为什么?

unix linux bash shell quotes

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

如何在文本文件中替换$ {}占位符?

我想将"模板"文件的输出传递给MySQL,该文件包含${dbName}散布的变量.什么是命令行实用程序来替换这些实例并将输出转储到标准输出?

bash command-line text-processing templating

137
推荐指数
11
解决办法
13万
查看次数

如何在bash脚本中使用正则表达式?

我想使用正则表达式检查变量是否具有有效年份.阅读bash手册我明白我可以使用operator =〜

看下面的例子,我希望看到"不行",但我看到"OK".我究竟做错了什么?

i="test"
if [ $i=~"200[78]" ]
then
  echo "OK"
else
  echo "not OK"
fi
Run Code Online (Sandbox Code Playgroud)

regex bash conditional

83
推荐指数
2
解决办法
11万
查看次数

使用bash脚本从模板创建新文件

我必须创建conf文件,init.d它们非常相似.这些文件允许在我的服务器上部署新的http服务.这些文件是相同的,只有一些参数从一个文件更改为另一个文件(listen_port域,服务器上的路径......).

由于这些文件中的任何错误都会导致服务错误,我想使用bash脚本创建这些文件.

例如:

generate_new_http_service.sh 8282 subdomain.domain.com /home/myapp/rootOfHTTPService
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种可以与bash一起使用的模板模块.这个模板模块将使用一些通用的conf和init.d脚本来创建新的脚本.

你有提示吗?如果不是,我可以使用python模板引擎.

bash configuration templates template-engine

46
推荐指数
6
解决办法
5万
查看次数

替换属性文件中的环境变量

在Linux中,假设我有以下文件(例如conf.properties):

HOST_URL=http://$HOSTNAME
STD_CONFIG=http://$HOSTNAME/config
USER_CONFIG=http://$HOSTNAME/config/$unconfigured
Run Code Online (Sandbox Code Playgroud)

我想创建另一个替换了所有环境变量的文件...比如说环境变量$ HOSTNAME是'myhost'并且未设置$ unconfigured,脚本应该产生以下输出:

HOST_URL=http://myhost
STD_CONFIG=http://myhost/config
USER_CONFIG=http://myhost/config/
Run Code Online (Sandbox Code Playgroud)

我认为这可以通过一个简单的单行程来完成,带有某种sed/awk魔法,但我不是专家,而且我的搜索已经静止,所以感谢任何帮助.

编辑:

我应该提一下,该文件可以是任何格式的文本文件,例如xml.我只想用环境中当前设置的任何东西替换任何看起来像env变量的东西.

linux

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

如何替换shell脚本字符串中的变量

我有问题让这个工作......

我有一个带占位符的SQL变量:

echo $SQL
SELECT PX_PROMOTION_ID, PRIORITY, STATUS, EXCLSVE, TYPE, PERORDLMT, PERSHOPPERLMT, TOTALLMT, RSV_INT, PX_GROUP_ID, CAMPAIGN_ID, STOREENT_ID, VERSION, REVISION, EFFECTIVE, TRANSFER, CDREQUIRED, EXPIRE, LASTUPDATEBY, TO_CHAR(LASTUPDATE, 'YYYYMMDD HH24MMSS') AS LASTUPDATE, TO_CHAR(STARTDATE, 'YYYYMMDD HH24MMSS') AS STARTDATE, TO_CHAR(ENDDATE, 'YYYYMMDD HH24MMSS') AS ENDDATE, TO_CHAR(RSV_TIME, 'YYYYMMDD HH24MMSS') AS RSV_TIME, RSV_REAL, TGTSALES, NAME, CODE, RSV_VCH, OPTCOUNTER FROM PX_PROMOTION WHERE LASTUPDATE BETWEEN (SELECT MAX(BATCHSTART) FROM XRPTEBATCHCONTROL) AND TIMESTAMP('$BATCH_END')
Run Code Online (Sandbox Code Playgroud)

我有另一个保存值的变量:

echo $BATCH_END
2012-11-14 17:06:13
Run Code Online (Sandbox Code Playgroud)

我想用值替换占位符.我在Unix脚本方面不是特别出色,但我试过这个:

echo $SQL | sed -e "s/'$BATCH_END/$BATCH_END/g"
Run Code Online (Sandbox Code Playgroud)

但它仍然没有被取代......

有人可以帮忙吗?我想替换占位符,并保持最终字符串分配给$ SQL

我还需要知道如何将输出的值返回到变量中,例如,我尝试过:

 SQL=`echo "$SQL" | …
Run Code Online (Sandbox Code Playgroud)

bash shell

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

nginx:使用环境变量

我有以下场景:我$SOME_IP定义了一个env变量,并希望在nginx块中使用它.参考nginx文档,envnginx.conf文件中使用如下指令:

user www-data;
worker_processes 4;
pid /run/nginx.pid;

env SOME_IP;
Run Code Online (Sandbox Code Playgroud)

现在我想将变量用于a proxy_pass.我尝试过如下:

location / {
    proxy_pass http://$SOME_IP:8000;
}
Run Code Online (Sandbox Code Playgroud)

但我最终得到此错误消息: nginx: [emerg] unknown "some_ip" variable

shell proxy nginx environment-variables docker

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

Bash中的懒惰评估

是否有比以下更优雅的懒惰评估方式:

pattern='$x and $y'
x=1
y=2
eval "echo $pattern"

结果:

1 and 2

它有效,但eval "echo ..."只是感觉草率,可能在某种程度上不安全.在Bash中有更好的方法吗?

bash lazy-evaluation

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

在tcl中,如何替换文件中的一行?

假设我打开了一个文件,然后将其解析为行.然后我用一个循环:

foreach line $lines {}
Run Code Online (Sandbox Code Playgroud)

在循环内部,对于某些行,我想用不同的行替换它们在文件中.可能吗?或者我必须写入另一个临时文件,然后在我完成后替换文件?

例如,如果文件包含

AA
BB
Run Code Online (Sandbox Code Playgroud)

然后我用小写字母替换大写字母,我想要包含原始文件

aa
bb
Run Code Online (Sandbox Code Playgroud)

谢谢!

replace file tcl line

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

从bash脚本更改apache配置文件值

我需要一个从bash脚本更改apache配置值的示例,这样我就可以通过在我的服务器上运行脚本而不是复制和粘贴整个配置文件来实现相同的配置.只是一个起点,让我想一下如何做到.

我在谷歌上花了最后2个小时,但我找不到任何线索.谢谢!

linux apache bash configuration

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

在 Flutter 中的多个 Firebase 项目/环境之间切换?

有谁知道如何在应用程序内切换 Firebase 项目/环境,假设您有一个包含不同开发 URL 的下拉菜单。我们不是在谈论不同的构建,这对我们不起作用,并且需要将多个版本发送到 TestFlight。

我们在这里找到了一段代码。

final options = FirebaseOptions.from({});
final firebaseApp = await FirebaseApp.configure(name: 'some_app_name', options: options);
Run Code Online (Sandbox Code Playgroud)

但我们不知道如何使用它,也不知道它是否能正常工作。

编辑

当我写这篇文章时,它还没有得到官方支持。现在是了。

firebase flutter

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