当前位置:首页 » 编程软件 » bash脚本字符串

bash脚本字符串

发布时间: 2023-07-28 22:57:53

① 如何将bash shell脚本字符串写入到文件中

刚学完新书《实用Linux Shell编程》,写的不错,容易懂,网上和书店都有卖。

现在试着回答,仅供参考,谢谢。

1)先保证文件内容正确:

2)文件1文件2只有唯一字符串,所以情况相对简单。脚本写好了,别忘了给脚本增加执行权限。

② hell 如何在bash脚本中连接两个字符串变量

bash在一个脚本里引用另一个脚本定义的变量有3种方法:

  • fork(/directory/script.sh)

    fork是最普通的,就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本.

    运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候,parent-shell还在。

    sub-shell执行完毕后返回parent-shell.sub-shell从parent-shell继承环境变量.但是sub-shell中的环境变量不会带回parent-shell

  • exec(exec/directory/script.sh)

    exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本.被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后,父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别

  • source(source/directory/script.sh)

    与fork的区别是不新开一个sub-shell来执行被调用的脚本,而是在同一个shell中执行.所以被调用的脚本中声明的变量和环境变量,都可以在主脚本中得到和使用.

  • 可以通过下面这两个脚本来体会三种调用方式的不同:

    1.sh

    #!/bin/bash

    A=B

    echo"PIDfor1.shbeforeexec/source/fork:$$"

    exportA

    echo"1.sh:$Ais$A"

    case$1in

    exec)

    echo"usingexec…"

    exec./2.sh;;

    source)

    echo"usingsource…"

    ../2.sh;;

    *)

    echo"usingforkbydefault…"

    ./2.sh;;

    esac

    echo"PIDfor1.shafterexec/source/fork:$$"

    echo"1.sh:$Ais$A"

    2.sh

    #!/bin/bash

    echo"PIDfor2.sh:$$"

    echo"2.shget$A=$Afrom1.sh"

    A=C

    exportA

    echo"2.sh:$Ais$A"

    执行情况:

    $./1.sh

    PIDfor1.shbeforeexec/source/fork:5845364

    1.sh:$AisB

    usingforkbydefault…

    PIDfor2.sh:5242940

    2.shget$A=Bfrom1.sh

    2.sh:$AisC

    PIDfor1.shafterexec/source/fork:5845364

    1.sh:$AisB

    $./1.shexec

    PIDfor1.shbeforeexec/source/fork:5562668

    1.sh:$AisB

    usingexec…

    PIDfor2.sh:5562668

    2.shget$A=Bfrom1.sh

    2.sh:$AisC

    $./1.shsource

    PIDfor1.shbeforeexec/source/fork:5156894

    1.sh:$AisB

    usingsource…

    PIDfor2.sh:5156894

    2.shget$A=Bfrom1.sh

    2.sh:$AisC

    PIDfor1.shafterexec/source/fork:5156894

    1.sh:$AisC

    $

③ bash脚本中,条件判断一个字串是否在数组中,除了列举之外,还有什么简单的写法吗

只能是遍历数组元素来比较:
if [ "$str1“ = "conditon1" ]; then
action1
elif [ “$str1” = "conditon3" ]; then
action 3
fi
for elem in ${array[@]}
do
if [ "$str1" = "$elem" ]; then
action2
break
fi
done

④ 在shell bash脚本里,如何把一个字符串中的回车转成其他字符

假设 s 是含回车的字符串

echo$s|tr'
''	'

能够将回车转成 Tab。 可以换成你想要字符。

热点内容
取消微信设置密码在哪里设置 发布:2025-02-05 22:48:49 浏览:666
mysql内存存储 发布:2025-02-05 22:30:39 浏览:569
静态存储区堆栈 发布:2025-02-05 22:09:11 浏览:101
js加密算法 发布:2025-02-05 22:06:35 浏览:230
python3graphics 发布:2025-02-05 21:36:57 浏览:511
为什么英雄联盟一个服务器进不去 发布:2025-02-05 21:36:12 浏览:182
服务器搭建网站开发教材 发布:2025-02-05 21:31:57 浏览:567
pythonrose 发布:2025-02-05 21:31:46 浏览:923
php数组从小到大排序 发布:2025-02-05 21:26:01 浏览:325
单片机存储器扩展 发布:2025-02-05 21:17:35 浏览:966