首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将字符串添加到Bash中变量的每个成员

在Bash中,可以使用以下方式将字符串添加到变量的每个成员:

  1. 使用循环遍历变量的每个成员,并使用+=操作符将字符串添加到每个成员的末尾。
代码语言:txt
复制
variable=("member1" "member2" "member3")  # 变量的每个成员
string_to_add="addition"  # 要添加的字符串

for i in "${!variable[@]}"; do
    variable[i]+="$string_to_add"
done
  1. 使用sed命令和正则表达式将字符串添加到每个成员的末尾。
代码语言:txt
复制
variable=("member1" "member2" "member3")  # 变量的每个成员
string_to_add="addition"  # 要添加的字符串

variable=$(echo "${variable[@]}" | sed "s/\([^ ]\+\)/\1$string_to_add/g")
  1. 使用awk命令将字符串添加到每个成员的末尾。
代码语言:txt
复制
variable=("member1" "member2" "member3")  # 变量的每个成员
string_to_add="addition"  # 要添加的字符串

variable=$(awk -v var="${variable[*]}" -v add="$string_to_add" 'BEGIN {
    split(var, array, " ");
    for (i in array) {
        array[i] = array[i] add;
    }
    print join(array, " ");
}

function join(array, separator,    result, i) {
    result = "";
    for (i = 1; i <= length(array); i++) {
        result = result array[i] separator;
    }
    return result;
}')

以上三种方式都可以将字符串添加到Bash中变量的每个成员,具体选择哪种方式取决于实际需求和个人偏好。

希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Resources和AssetManager创建过程

    到这里AssetManager创建完毕。然后设置相关的路径 AssetManager assets = new AssetManager(); // resDir can be null if the 'android' package is creating a new Resources object. // This is fine, since each AssetManager automatically loads the 'android' package // already. if (resDir != null) { if (assets.addAssetPath(resDir) == 0) { return null; } } if (splitResDirs != null) { for (String splitResDir : splitResDirs) { if (assets.addAssetPath(splitResDir) == 0) { return null; } } } if (overlayDirs != null) { for (String idmapPath : overlayDirs) { assets.addOverlayPath(idmapPath); } } if (libDirs != null) { for (String libDir : libDirs) { if (libDir.endsWith(".apk")) { // Avoid opening files we know do not have resources, // like code-only .jar files. if (assets.addAssetPath(libDir) == 0) { Log.w(TAG, "Asset path '" + libDir + "' does not exist or contains no resources."); } } } } 接着就创建Resource对象 r = new Resources(assets, dm, config, compatInfo); 这里看到AssetManager保存到了Resources对象中。接着进入到Resources的构造方法中 public Resources(AssetManager assets, DisplayMetrics metrics, Configuration config, CompatibilityInfo compatInfo) { mAssets = assets; mMetrics.setToDefaults(); if (compatInfo != null) { mCompatibilityInfo = compatInfo; } updateConfiguration(config, metrics); assets.ensureStringBlocks(); } 最后进入到updateConfiguration(Configuration config, DisplayMetrics metrics, CompatibilityInfo compat) mAssets.setConfiguration(mConfiguration.mcc, mConfiguration.mnc, locale, mConfiguration.orientation, mConfiguration.touchscreen, mConfiguration.densityDpi, mConfiguration.keyboard, keyboardHidden, mConfiguration.navigation, width, height, mConfiguration.smallestScreenWidthDp, mConfiguration.screenWidthDp, mConfiguration.screenHeightDp, mConfiguration.screenLayout, mConfiguration.uiMode, Build.VERSION.RESOURCES

    05

    String、StringBuffer、StringBuilder 有什么区别?

    String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。 StringBuffer 是为解决上面提到拼接产生太多中间对象的问题而提供的一个类,我们可以用 append 或者 add 方法,把字符串添加到已有序列的末尾或者指定位置。StringBuffer 本质是一个线程安全的可修改字符序列,它保证了线程安全,也随之带来了额外的性能开销,所以除非有线程安全的需要,不然还是推荐使用它的后继者,也就是 StringBuilder。 StringBuilder 是 Java 1.5 中新增的,在能力上和 StringBuffer 没有本质区别,但是它去掉了线程安全的部分,有效减小了开销,是绝大部分情况下进行字符串拼接的首选。

    02
    领券