.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