我想将 .java 添加到我的字符串中(如果它还没有)。我怎样才能让这个工作与if
结构一起工作?这是我尝试过的:
6 echo geef eens je naam van je java programma?
7
8 read naam
9 firstletter=${naam:0:1}
10
11 naamm="${naam^}"
12 echo $naamm
13
14 add=".java"
15
16 if [ ${naamm:(-5)} != ".java" ]
17 then
18 naamm=$naamm$add
19 echo $naamm
20 else
21 #nothing
22 fi
答案1
几种可能性:
if ! [[ $naamm =~ \.java$ ]]
或者
name="${name%.java}.java"
或者
if [ "${name: -5}" = '.java' ]
附加问题
内容可以写入这样的文件:
echo "public class $naamm {
public main..." >file
对于更大的内容,这种方法更容易:
cat <<\EOT >file
public class $naamm {
public main...
EOT
答案2
您可以用来grep
测试字符串是否具有模式,然后附加它或通过。
#!/bin/bash
vars=(String.obj String.java)
for v in "${vars[@]}"; do
if ! echo "${v}" | grep -q "\.java$"; then
appended="${v}.java"
echo "${appended}"
fi
done