相关疑难解决方法(0)

$ {var}参数扩展表达式可以嵌套在bash中吗?

我有的是这个:

progname=${0%.*}
progname=${progname##*/}
Run Code Online (Sandbox Code Playgroud)

这可以嵌套(或不嵌套)成一行,即单个表达式吗?

我正在尝试从脚本名称中删除路径和扩展名,以便只保留基本名称.以上两行都运行正常.我的"C"性质只是让我更加混淆这些.

bash

59
推荐指数
9
解决办法
3万
查看次数

用换行符分割bash字符串

我找到了这个.

我正在尝试这个:

x='some
   thing'

y=(${x//\n/})
Run Code Online (Sandbox Code Playgroud)

我没有运气,我认为它可以使用双反斜杠:

y=(${x//\\n/})
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.

为了测试我没有得到我想要的东西:

echo ${y[1]}
Run Code Online (Sandbox Code Playgroud)

获得:

some
thing
Run Code Online (Sandbox Code Playgroud)

我想成为:

some
Run Code Online (Sandbox Code Playgroud)

我想y成为一个阵列[some, thing].我怎样才能做到这一点?

string bash shell

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

bash是一种编程语言吗?

TL; DR; 什么是shell脚本?它是一种编程语言/我们在shell脚本中使用的编程语言是什么?


免责声明:有点offtopic
所以bash代表Bourne-again shell.(Unix)Shell是一个命令行用户界面,或者可以称之为解释器(?)

所以我正在填写一份新工作的应用程序,你会被要求获得不同编程语言的经验,然后在底层有其他经验 - 我开始输入python 2.7,powershell,bas ...等等!bash不是一种编程语言 - 它是一个可以执行shell脚本的控制台...所以......呃......天哪,我不知道!

bash

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

我们可以在awk中使用shell变量吗?

我们可以使用shell变量AWK像$VAR代替$1,$2?例如:

UL=(AKHIL:AKHIL_NEW,SWATHI:SWATHI_NEW)

NUSR=`echo ${UL[*]}|awk -F, '{print NF}'`
echo $NUSR
echo ${UL[*]}|awk -F, '{print $NUSR}'
Run Code Online (Sandbox Code Playgroud)

实际上我是一个oracle DBA,我们得到了很多导入请求.我正在尝试使用脚本自动化它.该脚本将查找转储中的用户并提示需要加载转储的用户.

假设转储有两个用户AKHIL,SWATHI(有可在转储可能的用户,我希望进口更多的用户数).我想将转储导入新用户AKHIL_NEWSWATHI_NEW.所以要阅读的输入有些想法AKHIL:AKHIL_NEW,SWATHI:SWATHI_NEW.

首先,我需要找到要创建的用户数,然后我需要AKHIL_NEW,SWATHI_NEW从我们给出的输入中获得新用户.这样我就可以连接到数据库并创建新用户然后导入.我没有复制整个代码:我只是从接受输入用户的地方复制了代码.

UL=(AKHIL:AKHIL_NEW,SWATHI:SWATHI_NEW) ## it can be many users like     USER1:USER1_NEW,USER2_USER2_NEW,USER3:USER_NEW..

NUSR=`echo ${UL[*]}|awk -F, '{print NF}'` #finding  number of fields or users
y=1
while [ $y -le $NUSR ] ; do
    USER=`echo ${UL[*]}|awk -F, -v NUSR=$y  '{print $NUSR}' |awk -F: '{print $2}'` #getting     Users to created …
Run Code Online (Sandbox Code Playgroud)

awk

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

如何用逗号而不是空格分割列表

我想一个文本用逗号分开,没有空间 in for foo in list.假设我有一个CSV_File包含以下文本的CSV文件:

Hello,World,Questions,Answers,bash shell,script
...
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码将它分成几个单词:

for word in $(cat CSV_File | sed -n 1'p' | tr ',' '\n')
do echo $word
done
Run Code Online (Sandbox Code Playgroud)

它打印:

Hello
World
Questions
Answers
bash
shell
script
Run Code Online (Sandbox Code Playgroud)

但我希望它用逗号分隔文本而不是空格:

Hello
World
Questions
Answers
bash shell
script
Run Code Online (Sandbox Code Playgroud)

我怎样才能在bash中实现这一目标?

linux csv bash shell split

43
推荐指数
6
解决办法
9万
查看次数

Bash:如何标记字符串变量?

如果我有一个字符串变量谁的值是"john is 17 years old"如何使用空格作为分隔符来标记它?我会用awk吗?

linux bash

38
推荐指数
3
解决办法
7万
查看次数

31
推荐指数
3
解决办法
11万
查看次数

从shell脚本中的文件中提取版本号

我正在尝试编写一个bash脚本,该脚本会增加给出的版本号

{major}.{minor}.{revision}
Run Code Online (Sandbox Code Playgroud)

例如.

1.2.13
Run Code Online (Sandbox Code Playgroud)

是否有一种很好的方法可以使用像sed或awk这样的东西轻松提取这3个数字,这样我就可以增加{revision}数字并输出完整的版本号字符串.

bash shell scripting sed

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

在Bash中将字符串拆分为多个变量

我有一个生成如下的字符串:

192.168.1.1,UPDOWN,Line protocol on Interface GigabitEthernet1/0/13, changed state to up
Run Code Online (Sandbox Code Playgroud)

如何取出该字符串并从中生成2个变量(使用bash)?

比如我想要的

$ip=192.168.1.1 
$int=GigabitEthernet1/0/13
Run Code Online (Sandbox Code Playgroud)

bash

30
推荐指数
3
解决办法
9万
查看次数

如何使用iptables进行本地端口转发

我有一个应用程序(服务器)侦听端口8080.我希望能够将端口80转发给它,以便命中http://localhost解析我的应用程序(在localhost:8080).

这应该针对任何端口映射进行推广(例如80:8080=> P_src:P_target),并使用现代*nix机器(例如Ubuntu)的最佳实践.

注意这都是在本地完成的,因此除了localhost之外,不需要接受来自任何人的连接.

iptables

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

标签 统计

bash ×8

shell ×3

linux ×2

awk ×1

csv ×1

iptables ×1

scripting ×1

sed ×1

split ×1

string ×1