split()在JavaScript中使用它很容易将字符串分成数组。 那shell脚本呢? 说我想这样做: $ script.sh var1_var2_var3 当用户将这样的字符串提供var1_var2_var3给script.sh时,它将在脚本内部将字符串转换为数组,例如 array=( var1 var2 var3 ) for name in ${array[@]}; do # some code done
我想用尚未设置的变量来初始化脚本顶部的一些字符串,例如: str1='I went to ${PLACE} and saw ${EVENT}' str2='If you do ${ACTION} you will ${RESULT}' 再后来PLACE,EVENT,ACTION,和RESULT将被设置。然后,我希望能够将变量扩展后的字符串打印出来。是我唯一的选择eval吗?这似乎可行: eval "echo ${str1}" 这是标准吗?有一个更好的方法吗?最好不要eval考虑变量可以是任何东西而运行。
我正在编写将以方式运行的安装脚本/bin/sh。 有一行提示输入文件: read -p "goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY 我想把这条长行分成多行,以使它们都不超过80个字符。我说的是脚本源代码中的几行;与执行脚本时要在屏幕上实际打印的行无关! 我尝试过的 第一手方法: read -p "goat can try change directory if cd fails to do so. " \ "Would you like to add this feature? …
如何在sh / bash中按索引引用字符串?也就是说,基本上将其拆分。 我正在尝试删除文件名的5个字符。所有名称都具有以下结构:name_nr_code。我正在尝试删除5个字母数字代码位。name_nr_始终为10个字符。 有没有类似的事情? for i in * ; do mv "$i" "$i"[:10] ; done
我想编写一个bash脚本来打印某个单词(例如harley)的所有可能的大小写排列: harley harleY harlEy harLey ... HARLey HARLEy HARLEY 我朴素的解决方案是为此特定单词编写第n个(n为len(word))嵌套的for循环: #!/bin/bash for a in {h,H}; do for b in {a,A}; do ... done done 但是,我将不得不再次为另一个单词编写脚本。 有没有更好的方法可以做到这一点?